source: 2013/26/RoopeR/The Random game/The Random game/The Random game/The_Random_game.cs @ 4294

Revision 4294, 8.9 KB checked in by rotaraih, 7 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 The_Random_game : PhysicsGame
10{
11    ScoreList topLista = new ScoreList(10, false, 0);
12
13    const double nopeus = 100;
14    const double hyppyNopeus = 2000;
15    const int RUUDUN_KOKO = 60;
16    int kenttaNro = 1;
17    int maara = 0;
18    PlatformCharacter pelaaja1;
19
20    IntMeter pisteLaskuri;
21
22    Image kerattavaKuva = LoadImage("kerattava");
23    Image esteKuva = LoadImage("Este");
24    Image pelaajakuva = LoadImage("pelaaja");
25    Image maalikuva = LoadImage("Untitled");
26
27    SoundEffect maaliAani = LoadSoundEffect("maali");
28
29    public override void Begin()
30    {
31        alkuvalikko();
32
33
34       
35    }
36   
37
38    void alkuvalikko()
39    {
40        MultiSelectWindow alkuValikko = new MultiSelectWindow("The Random Game", "Start game", "exit");
41        Add(alkuValikko);
42        alkuValikko.AddItemHandler(0, SeuraavaKentta);
43        //alkuValikko.AddItemHandler(1, ParhaatPisteet);
44        alkuValikko.AddItemHandler(1, Exit);
45    }
46
47    void TormaaMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
48    {
49        if (maara == 0)
50        {
51            kenttaNro++;
52            SeuraavaKentta();
53        }
54    }
55    void SeuraavaKentta()
56    {
57        ClearAll();
58        maara = 0;
59        if (kenttaNro > 17) Exit();
60        else LuoKentta("kentta" + kenttaNro);
61        //if (kenttaNro == 1) LuoKentta("kentta1");
62        //else if (kenttaNro == 2) LuoKentta("kentta2");
63        //else if (kenttaNro == 3) LuoKentta("kentta3");
64        //else if (kenttaNro == 4) LuoKentta("kentta4");
65        //else if (kenttaNro == 5) LuoKentta("kentta5");
66        //else if (kenttaNro == 6) LuoKentta("kentta6");
67        //else if (kenttaNro == 7) LuoKentta("kentta7");
68        //else if (kenttaNro == 8) LuoKentta("kentta8");
69        //else if (kenttaNro == 9) LuoKentta("kentta9");
70        //else if (kenttaNro == 10) LuoKentta("kentta10");
71        //else if (kenttaNro == 11) LuoKentta("kentta11");
72        //else if (kenttaNro == 12) LuoKentta("kentta12");
73        //else if (kenttaNro == 13) LuoKentta("kentta13");
74        //else if (kenttaNro == 14) LuoKentta("kentta14");
75        //else if (kenttaNro == 15) LuoKentta("kentta15");
76        //else if (kenttaNro == 16) LuoKentta("kentta16");
77        //else if (kenttaNro == 17) LuoKentta("kentta17");
78        //else if (kenttaNro > 17) Exit();
79
80        Gravity = new Vector(0, -4000);
81
82        LisaaNappaimet();
83        LuoPistelaskuri();
84        LuoAikaLaskuri();
85
86        Camera.Follow(pelaaja1);
87        Camera.ZoomFactor = 1.2;
88        Camera.StayInLevel = true;
89    }
90
91
92    void LuoKentta(string kentanNimi)
93    {
94        TileMap kentta = TileMap.FromLevelAsset(kentanNimi);
95        kentta.SetTileMethod('#', LisaaTaso);
96        kentta.SetTileMethod('!', LisaaEste);
97        kentta.SetTileMethod('*', LisaaTahti);
98        kentta.SetTileMethod('N', LisaaPelaaja);
99        kentta.SetTileMethod('M', LisaaMaali);
100        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
101        Level.CreateBorders();
102        Level.BackgroundColor = Color.SkyBlue;
103
104    }
105
106    void LisaaMaali(Vector paikka, double leveys, double korkeus)
107    {
108        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
109        maali.Tag = "maali";
110        maali.Image = maalikuva;
111        Add(maali);
112        maali.Color = Color.HotPink;
113        maali.Position = paikka;
114
115    }
116
117
118    void LisaaTaso(Vector paikka, double leveys, double korkeus)
119    {
120        PhysicsObject este = PhysicsObject.CreateStaticObject(leveys, korkeus);
121        este.Position = paikka;
122        este.Color = Color.Green;
123        Add(este);
124
125
126    }
127
128
129
130    void LisaaEste(Vector paikka, double leveys, double korkeus)
131    {
132        PhysicsObject este = PhysicsObject.CreateStaticObject(leveys / 2, korkeus / 2);
133        este.Image = esteKuva;
134        este.Shape = Shape.FromImage(esteKuva);
135        este.Position = paikka + new Vector(0, -5); ;
136        este.Color = Color.Magenta;
137        Add(este);
138        este.Restitution = (1.0);
139
140    }
141
142    void LisaaTahti(Vector paikka, double leveys, double korkeus)
143    {
144        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
145        tahti.IgnoresCollisionResponse = true;
146        tahti.Position = paikka;
147        tahti.Image = kerattavaKuva;
148        tahti.Tag = "random";
149        Add(tahti);
150        tahti.Restitution = (0.0);
151        maara++;
152    }
153
154    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
155    {
156        pelaaja1 = new PlatformCharacter(leveys / 2, korkeus / 2);
157        pelaaja1.Position = paikka;
158        pelaaja1.Mass = 5.0;
159        pelaaja1.Restitution = 0.0;
160        pelaaja1.Image = pelaajakuva;
161        AddCollisionHandler(pelaaja1, "random", TormaaTahteen);
162        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
163        Add(pelaaja1);
164        pelaaja1.LifetimeLeft = TimeSpan.FromSeconds(120);
165        pelaaja1.Push(new Vector(1, 0));
166    }
167
168
169
170    void LisaaNappaimet()
171    {
172        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
173        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
174        Keyboard.Listen(Key.A, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
175        Keyboard.Listen(Key.D, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
176        Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppaa, "pelaaja hyppää", pelaaja1, hyppyNopeus);
177        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
178        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
179        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
180        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
181        Keyboard.Listen(Key.Enter, ButtonState.Pressed, SeuraavaKentta, "Aloittaa kentän uudestaan");
182
183        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1,
184   LiikutaTatilla, "Liikuta pelaajaa tattia pyörittämällä.", pelaaja1, 1000.0);
185        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, null, pelaaja1, -100.0);
186        ControllerOne.Listen(Button.DPadRight, ButtonState.Down,
187          Liikuta, null, pelaaja1, 100.0);
188        ControllerOne.Listen(Button.DPadUp, ButtonState.Down,
189          Hyppaa, null, pelaaja1, 1000.0);
190        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Hyppää", pelaaja1, 1000.0);
191        ControllerOne.Listen(Button.B, ButtonState.Pressed, SeuraavaKentta, "Aloittaa kentaän uudestaan");
192        ControllerOne.Listen(Button.X, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
193        ControllerOne.Listen(Button.Y, ButtonState.Pressed, Pause, "Pysäyttää pelin");
194       // ControllerOne.Vibrate(100.0, 100.0, 100.0, 100.0, 100.1);
195
196    }
197
198    void LiikutaTatilla(AnalogState a, PlatformCharacter pelaaja, double voima)
199    {
200        Vector tatinAsento = a.StateVector;
201        //if (tatinAsento.Y > 0) pelaaja.Jump(voima*2);
202        pelaaja.Walk(tatinAsento.X * voima);
203
204    }
205
206
207    void Liikuta(PlatformCharacter hahmo, double nopeus)
208    {
209        hahmo.Walk(nopeus * 10);
210    }
211
212    void Hyppaa(PlatformCharacter hahmo, double nopeus)
213    {
214        hahmo.Jump(nopeus *5);
215    }
216
217    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
218    {
219        maaliAani.Play();
220        MessageDisplay.Add("Onnea keräsit merkin!!! :)");
221        tahti.Destroy();
222        pisteLaskuri.Value++;
223        maara--;
224    }
225
226    void LuoPistelaskuri()
227    {
228        pisteLaskuri = new IntMeter(0);
229
230        Label pisteNaytto = new Label();
231        pisteNaytto.X = Screen.Right - 100;
232        pisteNaytto.Y = Screen.Top - 100;
233        pisteNaytto.TextColor = Color.Black;
234        pisteNaytto.Color = Color.HotPink;
235        pisteNaytto.Title = "Pisteet";
236        pisteNaytto.BindTo(pisteLaskuri);
237        Add(pisteNaytto);
238
239    }
240
241
242    void LuoAikaLaskuri()
243    {
244        Timer aikaLaskuri = new Timer();
245        //aikaLaskuri.Interval = 30.0;
246        aikaLaskuri.GetType().GetField("trigInterval", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.GetField | System.Reflection.BindingFlags.Instance).SetValue(aikaLaskuri, TimeSpan.FromSeconds(125));
247        aikaLaskuri.Timeout += AikaLoppui;
248        aikaLaskuri.Start(1);
249             
250
251        Label aikaNaytto = new Label();
252        aikaNaytto.TextColor = Color.Black;
253        aikaNaytto.DecimalPlaces = 1;
254        aikaNaytto.X = Screen.Right - 100;
255        aikaNaytto.Y = Screen.Top - 200;
256        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
257        Add(aikaNaytto);
258    }
259
260    void AikaLoppui()
261    {
262        MessageDisplay.Add("Aika loppui...");
263        SeuraavaKentta();
264
265    }
266
267    }
268
269
270
271   
Note: See TracBrowser for help on using the repository browser.