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

Revision 5117, 5.7 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 = 4;
17    IntMeter pistelaskuri = new IntMeter(0);
18
19    public override void Begin()
20    {
21
22        kenttaNro = 1;
23        LuoAlkuValikko();
24
25
26    }
27
28    void LuoAlkuValikko()
29    {
30        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
31            "Aloita peli", "Lopeta");
32        Add(alkuValikko);
33
34        alkuValikko.AddItemHandler(0, AloitaPeli);
35        alkuValikko.AddItemHandler(1, Exit);
36    }
37
38    void AloitaPeli()
39    {
40        LuoKentta();
41        LisaaOhjaimet();
42        LuoPisteLaskuri();
43
44    }
45
46    void LuoKentta()
47    {
48        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("kentta" + kenttaNro);
49        ruudut.SetTileMethod(Color.Red, LuoPelaaja);
50        ruudut.SetTileMethod(Color.Black, LuoSeina);
51        //ruudut.SetTileMethod(Color.Blue, LuoViholliset);
52        ruudut.SetTileMethod(new Color(0, 255, 0), LuoLoppu);
53        ruudut.Execute(20, 20);
54
55        ColorTileMap ruudut2 = ColorTileMap.FromLevelAsset("kentta" + kenttaNro);
56        ruudut2.SetTileMethod(Color.Blue, LuoViholliset);
57        ruudut2.Execute(20, 20);
58
59        Level.Background.Color = Color.Wheat;
60
61
62    }
63
64
65    void LuoPelaaja(Vector paikka, double leveys, double korkeus)
66    {
67        pelaaja = new PhysicsObject(15, 15);
68        pelaaja.Position = paikka;
69        pelaaja.Color = Color.Red;
70        pelaaja.Shape = Shape.Circle;
71        pelaaja.Tag = "pelaaja";
72        Add(pelaaja);
73        AddCollisionHandler(pelaaja, "pahis", AloitaKentta);
74        AddCollisionHandler(pelaaja, "maali", AloitaKentta);
75        AddCollisionHandler(pelaaja, "pahis", KasittelePelaajanTormays);
76
77
78    }
79
80    void LuoSeina(Vector paikka, double leveys, double korkeus)
81    {
82        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
83        taso.Position = paikka;
84        taso.Color = Color.Purple;
85        taso.Tag = "seina";
86        Add(taso);
87    }
88
89
90
91    void LisaaOhjaimet()
92    {
93        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
94        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
95
96        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "liikuttaa pelaajaa ylos", pelaaja, new Vector(0.0, 100.0));
97        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "liikuta pelaajaa alas", pelaaja, new Vector(0.0, -100.0));
98        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "liikuta pelaajaa vasemmalle", pelaaja, new Vector(-100, 0));
99        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Liikuta pelaajaa oikealle", pelaaja, new Vector(100, 0));
100        Keyboard.Listen(Key.Up, ButtonState.Released, LiikutaPelaajaa, "Pysayta pelaajaa", pelaaja, new Vector(0, 0));
101        Keyboard.Listen(Key.Down, ButtonState.Released, LiikutaPelaajaa, "Pysaytapelaaja", pelaaja, new Vector(0, 0));
102        Keyboard.Listen(Key.Left, ButtonState.Released, LiikutaPelaajaa, "Pysaytapelaaja", pelaaja, new Vector(0, 0));
103        Keyboard.Listen(Key.Right, ButtonState.Released, LiikutaPelaajaa, "Pysaytapelaaja", pelaaja, new Vector(0, 0));
104    }
105
106    void LuoViholliset(Vector paikka, double leveys, double korkeus)
107    {
108        PhysicsObject pahis = new PhysicsObject(15.0, 15.0);
109        pahis.Color = new Color(0, 0, 255);
110        pahis.Position = paikka;
111        pahis.Shape = Shape.Circle;
112        pahis.Tag = "pahis";
113        pahis.CollisionIgnoreGroup = 1;
114        Add(pahis);
115
116
117        LabyrinthWandererBrain labyrinttiAivot = new LabyrinthWandererBrain(20);
118        labyrinttiAivot.Speed = 100.0;
119        labyrinttiAivot.LabyrinthWallTag = "seina";
120        labyrinttiAivot.TurnWhileMoving = true;
121
122        pahis.Brain = labyrinttiAivot;
123
124        pahis.Brain.Active = true;
125    }
126
127
128    void LuoLoppu(Vector paikka, double leveys, double korkeus)
129    {
130        loppu = PhysicsObject.CreateStaticObject(leveys * 2, korkeus * 2);
131        loppu.Color = Color.Green;
132        loppu.Position = paikka;
133        loppu.Tag = "maali";
134        Add(loppu);
135    }
136
137    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector nopeus)
138    {
139        if (pelaaja.Top > Level.Top)
140        {
141
142            pelaaja.Velocity = Vector.Zero;
143            return;
144
145        }
146
147         pelaaja.Velocity = nopeus;
148
149        {
150
151        }
152    }
153
154    void AloitaKentta(PhysicsObject pelaaja, PhysicsObject kohde)
155    {
156        if (kohde.Tag == "maali")
157        {
158            kenttaNro++;
159            if (kenttaNro > maxKenttaNro) PeliLoppui();
160            else
161                ClearAll();
162
163            {
164                ClearAll();
165                AloitaPeli();
166            }
167        }
168
169        else if (kohde.Tag == "pahis")
170        {
171            pelaaja.Destroy();
172            ClearAll();
173            AloitaPeli();
174        }
175    }
176
177    void PeliLoppui()
178    {
179        ClearAll();
180        Begin();
181
182    }
183
184    void LuoPisteLaskuri()
185    {
186        //pistelaskuri = new IntMeter(0);
187
188        Label pisteNaytto = new Label();
189        pisteNaytto.X = Screen.Left + 400;
190        pisteNaytto.Y = Screen.Top - 100;
191        pisteNaytto.TextColor = Color.Black;
192        pisteNaytto.Color = Color.Wheat;
193
194
195
196        pisteNaytto.Title = "Kuolemat";
197        pisteNaytto.BindTo(pistelaskuri);
198        Add(pisteNaytto);
199
200    }
201    void KasittelePelaajanTormays(PhysicsObject pelaaja, PhysicsObject pahis)
202    {
203
204        pistelaskuri.Value += 1;
205
206    }
207}   
208
209
Note: See TracBrowser for help on using the repository browser.