source: 2012/24/LeeviL/Rangoneina/Rangoneina/Rangoneina/Rangoneina.cs @ 3018

Revision 3018, 7.2 KB checked in by leoslimi, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Rangoneina : PhysicsGame
10{
11    Image RekurokaI = LoadImage("Rekuroka");
12    Image SerunomI = LoadImage("Serunom");
13    Image MerinomaI = LoadImage("Merinoma");
14    Image Vih1I = LoadImage("Vih1");
15    Image Vih2I = LoadImage("Vih2");
16    Image Vih3I = LoadImage("Vih3");
17    PhysicsObject Rekuroka;
18    PhysicsObject Serunom;
19    PhysicsObject Merinoma;
20    IntMeter Pistelaskuri;
21    int kenttaNro = 1;
22    public override void Begin()
23    {
24        MultiSelectWindow valikko = new MultiSelectWindow("Tervettuoloa Peliin", "Aloita Peli", "Parhaat Pisteet", "Lopeta");
25        valikko.ItemSelected += PainettiinValikkoNappia;
26        Add(valikko);
27
28
29       
30
31    }
32
33    void LuoKentta(string KenttaTiedosto)
34    {
35        TileMap ruudut = TileMap.FromLevelAsset(KenttaTiedosto);
36        ruudut.SetTileMethod('=', LuoPalikka);
37        ruudut.SetTileMethod('T', LuoTahti);
38        ruudut.SetTileMethod('1', Vih1);
39        ruudut.SetTileMethod('2', Vih2);
40        ruudut.SetTileMethod('3', Vih3);
41        ruudut.SetTileMethod('R', LuoRekuroka);
42        ruudut.SetTileMethod('S', LuoSerunom);
43        ruudut.SetTileMethod('M', LuoMerinoma);
44        ruudut.SetTileMethod('W', LuoPiste);
45        ruudut.Execute(30,30);
46
47        Level.BackgroundColor = Color.Aqua;
48
49        Camera.Follow(Rekuroka);
50
51        LuoLaskuri();
52        LuoAikaLaskuri();
53    }
54
55    void SeuraavaKentta(int kenttaNro)
56    {
57        ClearAll();
58
59        AsetaOhjaimet();
60
61        if (kenttaNro == 1) LuoKentta("Kentta1");
62        else if (kenttaNro == 2) LuoKentta("Kentta2");
63        else if (kenttaNro == 3) LuoKentta("Kentta3");
64        else if (kenttaNro > 3) Exit();
65
66
67    }
68
69    void LuoRekuroka(Vector paikka, double leveys, double korkeus)
70    {
71        Rekuroka = new PhysicsObject (leveys, korkeus);
72        Rekuroka.Image = RekurokaI;
73        Rekuroka.Restitution = 0.0;
74        Rekuroka.Position = paikka;
75        AddCollisionHandler(Rekuroka, "LuoTahti", Tormays1);
76        AddCollisionHandler(Rekuroka, "LuoPiste", Tormays2);
77        AddCollisionHandler(Rekuroka, "Kuolema", Tormays3);
78        AddCollisionHandler(Rekuroka, "UusiKentta", Tormays4);
79        Add(Rekuroka);
80    }
81
82    void LuoSerunom(Vector paikka, double leveys, double korkeus)
83    {
84        Serunom = new PhysicsObject(leveys, korkeus);
85        Serunom.Image = SerunomI;
86        Serunom.Restitution = 0.0;
87        Serunom.Position = paikka;
88        Serunom.Tag = "UusiKentta";
89        Add(Serunom);
90    }
91
92    void LuoMerinoma(Vector paikka, double leveys, double korkeus)
93    {
94        Merinoma = new PhysicsObject(leveys, korkeus);
95        Merinoma.Image = MerinomaI;
96        Merinoma.Restitution = 0.0;
97        Merinoma.Position = paikka;
98        Merinoma.Tag = "Kuolema";
99        Add(Merinoma);
100    }
101
102    void Vih1(Vector paikka, double leveys, double korkeus)
103    {
104        PhysicsObject Vih1 = new PhysicsObject(leveys, korkeus);
105        Vih1.Image = Vih1I;
106        Vih1.Restitution = 0.0;
107        Vih1.Position = paikka;
108        Add(Vih1);
109    }
110
111    void Vih2(Vector paikka, double leveys, double korkeus)
112    {
113        PhysicsObject Vih2 = new PhysicsObject(leveys, korkeus);
114        Vih2.Image = Vih2I;
115        Vih2.Restitution = 0.0;
116        Vih2.Position = paikka;
117        Add(Vih2);
118    }
119
120    void Vih3(Vector paikka, double leveys, double korkeus)
121    {
122        PhysicsObject Vih3 = new PhysicsObject(leveys, korkeus);
123        Vih3.Image = Vih3I;
124        Vih3.Restitution = 0.0;
125        Vih3.Position = paikka;
126        Add(Vih3);
127    }
128
129    void LuoPalikka(Vector paikka, double leveys, double korkeus)
130    {
131        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
132        palikka.Shape = Shape.Rectangle;
133        palikka.Color = Color.Green;
134        palikka.Restitution = 0.0;
135        palikka.Position = paikka;
136        palikka.CollisionIgnoreGroup = 1;
137        Add(palikka);
138    }
139
140    void LuoTahti(Vector paikka, double leveys, double korkeus)
141    {
142        PhysicsObject tahti = new PhysicsObject(leveys, korkeus);
143        tahti.Shape = Shape.Star;
144        tahti.Color = Color.Yellow;
145        tahti.Restitution = 0.0;
146        tahti.Position = paikka;
147        tahti.Tag = "LuoTahti";
148        Add(tahti);
149    }
150
151    void LuoPiste(Vector paikka, double leveys, double korkeus)
152    {
153        PhysicsObject piste = new PhysicsObject(leveys, korkeus);
154        piste.Shape = Shape.Circle;
155        piste.Color = Color.YellowGreen;
156        piste.Restitution = 0.0;
157        piste.Position = paikka;
158        piste.Tag = "LuoPiste";
159        Add(piste);
160    }
161
162    void AsetaOhjaimet()
163    {
164       Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 200));
165       Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -200));
166       Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(200, 0));
167       Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-200, 0)); 
168
169        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
170        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
171    }
172
173    void LiikutaPelaajaa(Vector suunta)
174    {
175        Rekuroka.Push(suunta);
176    }
177
178    void Tormays1(IPhysicsObject tormaaja, IPhysicsObject kohde)
179    {
180        kohde.Destroy();
181        Pistelaskuri.Value = Pistelaskuri.Value + 1;
182    }
183
184    void Tormays2(IPhysicsObject tormaaja, IPhysicsObject kohde)
185    {
186        kohde.Destroy();
187        Pistelaskuri.Value = Pistelaskuri.Value + 5;
188    }
189
190    void Tormays3(IPhysicsObject Rekuroka, IPhysicsObject kohde)
191    {
192        AloitaAlusta();
193    }
194
195    void Tormays4(IPhysicsObject Rekuroka, IPhysicsObject kohde)
196    {
197        if (kohde == Serunom)
198        {
199            kenttaNro++;
200            SeuraavaKentta(kenttaNro);
201        }
202    }
203
204    void PainettiinValikkoNappia(int valinta)
205    {
206        switch (valinta) 
207        { 
208            case 0:
209                SeuraavaKentta(kenttaNro);
210                break;
211            case 1:
212                //ParhaatPisteet();
213                break;
214            case 2:
215                Exit();
216                break;
217        }
218    }
219
220    void LuoLaskuri()
221    {
222        Pistelaskuri = new IntMeter(0);
223
224        Label pistenaytto = new Label();
225        pistenaytto.X = Screen.Left + 100;
226        pistenaytto.Y = Screen.Top - 100;
227        pistenaytto.TextColor = Color.Black;
228        pistenaytto.Color = Color.White;
229
230        pistenaytto.BindTo(Pistelaskuri);
231        Add(pistenaytto);
232    }
233
234    void LuoAikaLaskuri()
235    {
236        Timer aikaLaskuri = new Timer();
237        aikaLaskuri.Start();
238
239        Label aikaNaytto = new Label();
240        aikaNaytto.X = Screen.Left + 100;
241        aikaNaytto.Y = Screen.Top - 70;
242        aikaNaytto.TextColor = Color.White;
243        aikaNaytto.DecimalPlaces = 1;
244        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
245        Add(aikaNaytto);
246    }
247
248    void AloitaAlusta()
249    {
250        ClearAll();
251        SeuraavaKentta(kenttaNro);
252    }
253}
Note: See TracBrowser for help on using the repository browser.