source: 2014/26/RossC/Maailman_Vaikein_Peli/Maailman_Vaikein_Peli/Maailman_Vaikein_Peli/Maailman_Vaikein_Peli.cs @ 5102

Revision 5102, 5.1 KB checked in by rojacoll, 7 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Maailman_Vaikein_Peli: PhysicsGame
10{
11    PhysicsObject pelaaja;
12    // PhysicsObject pahis;
13    PhysicsObject loppu;
14
15    int kenttaNro;
16    int maxKenttaNro = 3;
17
18    public override void Begin()
19    {
20        kenttaNro = 1;
21        LuoAlkuValikko();
22       
23    }
24
25    void LuoAlkuValikko()
26    {
27        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
28            "Aloita peli", "Lopeta");
29        Add(alkuValikko);
30
31        alkuValikko.AddItemHandler(0, AloitaPeli);
32        alkuValikko.AddItemHandler(1, Exit);
33    }
34
35    void AloitaPeli()
36    {
37        LuoKentta();
38        LisaaOhjaimet();
39    }
40
41    void LuoKentta()
42    {
43        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta" + kenttaNro);
44        ruudut.SetTileMethod(Color.Red, LuoPelaaja);
45        ruudut.SetTileMethod(Color.Black, LuoSeina);
46        // ruudut.SetTileMethod(Color.Blue, LuoViholliset);
47        ruudut.SetTileMethod(new Color(0, 255, 0 ),LuoLoppu);
48        ruudut.Execute(20, 20);
49
50        ColorTileMap ruudut2 = ColorTileMap.FromLevelAsset("kentta" + kenttaNro);
51        ruudut2.SetTileMethod(Color.Blue, LuoViholliset);
52        ruudut2.Execute(20, 20);
53
54        Level.Background.Color = Color.Wheat;
55
56
57    }
58
59
60    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
61    {
62        pelaaja = new PhysicsObject(15, 15);
63        pelaaja.Position = paikka;
64        pelaaja.Color = Color.Red;
65        pelaaja.Shape = Shape.Circle;
66        pelaaja.Tag = "pelaaja";
67        Add(pelaaja);
68        AddCollisionHandler(pelaaja, "pahis", SeuraavaKentta);
69        AddCollisionHandler(pelaaja, "maali", SeuraavaKentta);
70       
71    }
72
73    void LuoSeina(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        taso.Position = paikka;
77        taso.Color = Color.Purple;
78        taso.Tag = "seina";
79        Add(taso);
80    }
81   
82
83
84    void LisaaOhjaimet()
85    {
86        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
87        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
88
89        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "liikuttaa pelaajaa ylos", pelaaja, new Vector(0.0, 100.0)); 
90        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "liikuta pelaajaa alas", pelaaja, new Vector(0.0, -100.0));
91        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "liikuta pelaajaa vasemmalle", pelaaja, new Vector(-100, 0));
92        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liikuta pelaajaa oikealle", pelaaja, new Vector(100, 0));
93        Keyboard.Listen(Key.Up, ButtonState.Released, LiikutaPelaajaa, "Pysayta pelaajaa", pelaaja, new Vector(0, 0));
94        Keyboard.Listen(Key.Down, ButtonState.Released, LiikutaPelaajaa, "Pysaytapelaaja", pelaaja, new Vector(0, 0));
95        Keyboard.Listen(Key.Left, ButtonState.Released, LiikutaPelaajaa, "Pysaytapelaaja", pelaaja, new Vector(0, 0));
96        Keyboard.Listen(Key.Right, ButtonState.Released, LiikutaPelaajaa, "Pysaytapelaaja", pelaaja, new Vector(0, 0));
97    }
98
99    void LuoViholliset(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject pahis = new PhysicsObject(15.0, 15.0);
102        pahis.Color = new Color(0, 0, 255);
103        pahis.Position = paikka;
104        pahis.Shape = Shape.Circle;
105        pahis.Tag = "pahis";
106        pahis.CollisionIgnoreGroup = 1;
107        Add(pahis);
108
109
110        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(20);
111        labyrinttiAivot.Speed = 80.0;
112        labyrinttiAivot.LabyrinthWallTag = "seina";
113        labyrinttiAivot.TurnWhileMoving = true;
114
115        pahis.Brain = labyrinttiAivot;
116
117        pahis.Brain.Active = true;
118    }
119       
120
121    void LuoLoppu(Vector paikka, double leveys, double korkeus)
122    {
123        loppu =  PhysicsObject.CreateStaticObject(leveys*2, korkeus*2);
124        loppu.Color = Color.Green;
125        loppu.Position = paikka;
126        loppu.Tag = "maali";
127        Add(loppu);
128    }
129
130    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector nopeus)
131    {
132        if (pelaaja.Top > Level.Top)
133        {
134
135            pelaaja.Velocity = Vector.Zero;
136            return;
137
138        }
139
140        pelaaja.Velocity = nopeus;
141
142        {       
143       
144        }
145    }
146
147    void SeuraavaKentta(PhysicsObject pelaaja, PhysicsObject kohde)
148    {
149        if (kohde.Tag == "maali")
150        {
151            kenttaNro++;
152            if (kenttaNro > maxKenttaNro) PeliLoppui();
153            else
154                ClearAll();
155           
156            {
157                ClearAll();
158                AloitaPeli();
159            }
160        }
161
162        else if (kohde.Tag == "pahis")
163        {
164            pelaaja.Destroy();
165            ClearAll();
166            AloitaPeli();
167        }
168    }
169
170    void PeliLoppui()
171    {
172        ClearAll();
173        Begin();
174   
175    }
176   
177
178
179}
Note: See TracBrowser for help on using the repository browser.