source: 2012/26/AleksanteriV/Water wey/Water wey/Water wey/Water_wey.cs @ 3808

Revision 3808, 13.6 KB checked in by alvirmas, 10 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
9class Pelaaja : PhysicsObject
10{
11    public IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
12
13    public Pelaaja(double leveys, double korkeus)
14        : base(leveys, korkeus)
15    {
16        elamaLaskuri.LowerLimit += delegate
17        {
18            this.Destroy();
19        };
20    }
21}
22
23public class Water_wey : PhysicsGame
24{
25    //------------------------------------------------------------- PhysicsObject
26    PhysicsObject vesi;
27    PhysicsObject palikka;
28    PhysicsObject kulma1;
29    PhysicsObject kulma2;
30    PhysicsObject kulma3;
31    PhysicsObject kulma4;
32    int siittiolkm = 0;
33    Pelaaja pelaaja;
34    Pelaaja pelaaja2;
35    Image[] pelaaja1Kuvat = LoadImages("pelaaja1/pelaaja", "pelaaja1/pelaaja0.2", "pelaaja1/pelaaja", "pelaaja1/pelaaja0.3");
36    Image[] pelaaja2Kuvat = LoadImages("pelaaja2/KALA20.1", "pelaaja2/KALA20.2", "pelaaja2/KALA20.1", "pelaaja2/KALA20.3");
37
38    IntMeter pistelaskuri1;
39    IntMeter pistelaskuri2;
40    bool survival = false;
41    bool StoryMode = false;
42
43    public override void Begin()
44    {
45        ClearAll();
46
47        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
48"Story Mode", "Survival");
49        alkuValikko.ItemSelected += PainettiinValikonNappia;
50        Add(alkuValikko);
51
52    }
53
54    void AloitaSurvival()
55    {
56        survival = true;
57        StoryMode = false;
58
59        MediaPlayer.Play("musat/Mega game aqvashop");
60        MediaPlayer.IsRepeating = true;
61        //PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
62        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli");//Confirm
63
64        Keyboard.Listen(Key.Space, ButtonState.Pressed, Begin, "aloita alusta");
65        // Keyboard.Listen(Key.Right, ButtonState.Pressed, Gravity, new Vector(-100, 0);
66        pelaaja = LuoPelaaja(new Vector(-100, -100), 100, 50, pelaaja1Kuvat);
67        pelaaja2 = LuoPelaaja(new Vector(100, -100), 100, 50, pelaaja2Kuvat);
68
69        pistelaskuri1 = LuoPistelaskuriJaNaytto(Screen.Left + 100, Screen.Top - 100, new Color(0, 0, 255, 255), Color.White);
70        pistelaskuri2 = LuoPistelaskuriJaNaytto(Screen.Right - 100, Screen.Top - 100, new Color(255, 255, 0, 255), Color.Black);
71
72        AddCollisionHandler(pelaaja, "siittio", CollisionHandler.AddMeterValue(pistelaskuri1, 1));
73        AddCollisionHandler(pelaaja2, "siittio", CollisionHandler.AddMeterValue(pistelaskuri2, 1));
74
75       
76       
77        LuoSiittio(Level.GetRandomPosition(), 24, 24);
78        lisaaohjaimet();
79        luopelaajalleelämänäytto(pelaaja, Screen.Left +200, Screen.Top -100);
80        luopelaajalleelämänäytto(pelaaja2, Screen.Right - 400, Screen.Top - 100);
81        // Gravity = new Vector(0, -500);
82        Level.CreateBorders();
83        //IsFullScreen = true;
84        Level.Background.Image = LoadImage("kentta/underwater");
85        Level.Background.FitToLevel();
86        Camera.ZoomToLevel();
87
88        int Laskuri = 0;
89        while (Laskuri < 1000)
90        {
91            vesi = new PhysicsObject(25, 25);
92            vesi.Shape = Shape.Circle;
93
94            vesi.Color = new Color(0, 0, 100, 5);
95            vesi.Mass = 0.5;
96            vesi.X = RandomGen.NextDouble(Level.Left, Level.Right);
97            vesi.Y = RandomGen.NextDouble(Level.Bottom, Level.Top);
98            Add(vesi);
99            Laskuri++;
100        }
101        LuoKala(pelaaja);
102        LuoKala(pelaaja2);
103}
104
105    void AloitaStoryMode()
106    {
107        StoryMode = true;
108        survival = false;
109
110        LuoKentta();
111        Camera.Follow(pelaaja);
112        Camera.ZoomFactor = 20;
113        MediaPlayer.Play("musat/Mega game aqvashop");
114        MediaPlayer.IsRepeating = true;
115        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli");
116        Keyboard.Listen(Key.Space, ButtonState.Pressed, Begin, "aloita alusta");
117        pistelaskuri1 = LuoPistelaskuriJaNaytto(Screen.Left + 100, Screen.Top - 100, new Color(0, 0, 255, 255), Color.White);
118        pistelaskuri1.MaxValue = siittiolkm;
119        AddCollisionHandler(pelaaja, "siittio", CollisionHandler.AddMeterValue(pistelaskuri1, 1));
120        lisaaohjaimet();
121        luopelaajalleelämänäytto(pelaaja, Screen.Left + 200, Screen.Top - 100);
122        Level.CreateBorders();
123        Level.Background.Image = LoadImage("kentta/underwater");
124        Level.Background.FitToLevel();
125        Camera.StayInLevel = true;
126        pistelaskuri1.UpperLimit += KaikkiKeratty;
127    }
128    void PainettiinValikonNappia(int valinta)
129    {
130        switch (valinta)
131        {
132            case 0:
133                 AloitaStoryMode();
134                break;
135            case 1:
136                 AloitaSurvival();
137                break;
138           
139        }
140    }
141    void KaikkiKeratty()
142    {
143   
144    }
145    void LuoKentta()
146    {
147        ColorTileMap kentta = ColorTileMap.FromLevelAsset("kentta/kentta1");
148        kentta.SetTileMethod("00FF00", delegate(Vector paikka, double l, double k) { pelaaja = LuoPelaaja(paikka, 5, 2.5, pelaaja1Kuvat); pelaaja.Mass = 1000; pelaaja.LinearDamping = 0.96; });
149        kentta.SetTileMethod(Color.Black, LuoPalikka);
150        kentta.SetTileMethod("FF006E", Luotausta);
151        kentta.SetTileMethod("FF0000", LuoSiittio);
152        kentta.SetTileMethod("0094FF", luokulma1);
153        kentta.SetTileMethod("00FFFF", luokulma2);
154        kentta.SetTileMethod("FF6A00", luokulma3);
155        kentta.SetTileMethod("FFD800", luokulma4);
156        kentta.Execute(2, 2);
157    }
158    IntMeter LuoPistelaskuriJaNaytto(double x, double y, Color naytonTausta, Color tekstinVari)
159    {
160        IntMeter pisteLaskuri = new IntMeter(0);
161        Label pisteNaytto = new Label();
162        pisteNaytto.X = x;
163        pisteNaytto.Y = y;
164        pisteNaytto.TextColor = tekstinVari;
165        pisteNaytto.YMargin = 6;
166        pisteNaytto.XMargin = 12;
167        pisteNaytto.Color = naytonTausta;
168        pisteNaytto.BindTo(pisteLaskuri);
169        Add(pisteNaytto);
170        return pisteLaskuri;
171
172    }
173    void luokulma1(Vector paikka, double leveys, double korkeus)
174    {
175        PhysicsObject kulma1 = PhysicsObject.CreateStaticObject(leveys, korkeus);
176        kulma1.Position = paikka;
177        kulma1.Shape = Shape.FromImage(LoadImage("kentta/kulma1"));
178        kulma1.Image = LoadImage("kentta/kulma1");
179        Add(kulma1);
180    }
181    void luokulma2(Vector paikka, double leveys, double korkeus)
182    {
183        PhysicsObject kulma2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
184        kulma2.Position = paikka;
185        kulma2.Shape = Shape.FromImage(LoadImage("kentta/kulma2"));
186        kulma2.Image = LoadImage("kentta/kulma2");
187        Add(kulma2);
188    }
189    void luokulma3(Vector paikka, double leveys, double korkeus)
190    {
191        PhysicsObject kulma3 = PhysicsObject.CreateStaticObject(leveys, korkeus);
192        kulma3.Position = paikka;
193        kulma3.Shape = Shape.FromImage(LoadImage("kentta/kulma3"));
194        kulma3.Image = LoadImage("kentta/kulma3");
195        Add(kulma3);
196    }
197    void luokulma4(Vector paikka, double leveys, double korkeus)
198    {
199        PhysicsObject kulma4 = PhysicsObject.CreateStaticObject(leveys, korkeus);
200        kulma4.Position = paikka;
201        kulma4.Shape = Shape.FromImage(LoadImage("kentta/kulma4"));
202        kulma4.Image = LoadImage("kentta/kulma4");
203        Add(kulma4);
204    }
205    void Luotausta(Vector paikka, double leveys, double korkeus)
206    {
207        GameObject tausta = new GameObject(leveys, korkeus);
208        tausta.Position = paikka;
209        tausta.Color = Color.Black;
210        Add(tausta);
211    }   
212        void LuoPalikka(Vector paikka, double leveys, double korkeus)
213    {
214        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
215        palikka.Position = paikka;
216        palikka.Color = Color.Black;
217        palikka.Tag = "palikka";
218        Add(palikka);
219    }
220        void LuoSiittio(Vector paikka, double leveys, double korkeus)
221    {
222        PhysicsObject siittio = new PhysicsObject(leveys, korkeus);
223        siittio.Shape = Shape.Circle;
224        siittio.Angle = RandomGen.NextAngle();
225        siittio.Animation = new Animation(LoadImages("pisteet,enut/siiittio", "pisteet,enut/siiittio2", "pisteet,enut/siiittio3", "pisteet,enut/siiittio4", "pisteet,enut/siiittio5", "pisteet,enut/siiittio6"));
226        siittio.Animation.FPS = 10;
227        siittio.Animation.Start();
228        siittio.Mass = 0.5;
229        siittio.Tag = "siittio";
230        siittio.Position = paikka;
231        siittiolkm = siittiolkm + 1;
232        Add(siittio);
233    }
234    Pelaaja LuoPelaaja(Vector paikka, double pit, double lev, Image[] animaatioKuvat)
235    {
236       Pelaaja pelaaja = new Pelaaja(pit, lev);
237        pelaaja.Shape = Shape.FromImage(LoadImage("pelaaja1/pelaaja"));
238        pelaaja.Position = paikka;
239        pelaaja.Mass = 100;
240        pelaaja.Animation = new Animation(animaatioKuvat);
241        pelaaja.Animation.FPS = 10;
242        pelaaja.Animation.Start();
243        Add(pelaaja);
244        AddCollisionHandler(pelaaja, "siittio", CollisionHandler.DestroyTarget);
245        AddCollisionHandler<Pelaaja, PhysicsObject>(pelaaja, "kala", kalaOsuu);
246        if (StoryMode)
247        {
248            /*AddCollisionHandler<PhysicsObject, PhysicsObject>(pelaaja, "siittio", delegate
249            {
250
251            });*/
252        }
253        if (survival)
254        {
255            AddCollisionHandler<PhysicsObject, PhysicsObject>(pelaaja, "siittio", delegate
256        {
257            LuoSiittio(Level.GetRandomPosition(), 24, 24);
258            LuoSiittio(Level.GetRandomPosition(), 24, 24);
259        });
260        }
261       
262        return pelaaja;
263    }
264    void luopelaajalleelämänäytto(Pelaaja pelaaja, double x, double y) 
265    {
266        CountDisplay pisteNaytto = new CountDisplay();
267       
268        pisteNaytto.Full = LoadImage("pisteet,enut/enu");
269        pisteNaytto.X = x;
270        pisteNaytto.Y = y;
271        //pisteNaytto.TextColor = Color.Black;
272        //pisteNaytto.Color = Color.White;
273        pisteNaytto.BindTo(pelaaja.elamaLaskuri);
274        Add(pisteNaytto);
275
276    }
277    void LuoKala(PhysicsObject seurattava)
278    {
279        double x = RandomGen.NextDouble(0.0, 500.0);
280        double y = RandomGen.NextDouble(0.0, 300.0);
281
282        PhysicsObject kala = new PhysicsObject(100, 50);
283        FollowerBrain seuraajanAivot = new FollowerBrain(seurattava);
284        seuraajanAivot.TurnWhileMoving = true;
285        kala.Brain = seuraajanAivot;
286        seuraajanAivot.Speed = 200;
287        kala.Mass = 50;
288        kala.X = x;
289        kala.Y = y;
290        kala.Shape = Shape.FromImage(LoadImage("vihu/kala"));
291        kala.Animation = new Animation(LoadImages("vihu/kala0.1", "vihu/kala0.2", "vihu/kala0.1", "vihu/kala0.3"));
292        kala.Animation.FPS = 10;
293        kala.Animation.Start();
294        kala.Tag = "kala";
295        Add(kala);
296
297        Timer nopeuttaja = new Timer();
298        nopeuttaja.Interval = 3;
299        nopeuttaja.Timeout += delegate
300        {
301            seuraajanAivot.Speed += 50;
302        };
303        nopeuttaja.Start();
304    }
305    void kalaOsuu(Pelaaja player, PhysicsObject kala)
306    {
307        string vingahdus = RandomGen.SelectOne<string>("musat/ahi", "musat/thaaa");
308        PlaySound(vingahdus);
309        player.elamaLaskuri.Value--;
310        if (pelaaja.elamaLaskuri.Value == 0 && pelaaja2.elamaLaskuri.Value == 0)
311        {
312            ClearAll();
313            Begin();
314            MessageDisplay.Add("Hävisitte.");
315        }
316    }
317    void lisaaohjaimet()
318    {
319        //-------------------------------------------------------------------------------------1
320        Keyboard.Listen(Key.Left, ButtonState.Down, kaannaPelaajaa, null, pelaaja, 4.0);
321        Keyboard.Listen(Key.Left, ButtonState.Released, kaannaPelaajaa, null, pelaaja, 0.0);
322        Keyboard.Listen(Key.Right, ButtonState.Down, kaannaPelaajaa, null, pelaaja, -4.0);
323        Keyboard.Listen(Key.Right, ButtonState.Released, kaannaPelaajaa, null, pelaaja, -0.0);
324        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, pelaaja);
325        //---------------------------------------------------------------------------------2
326        Keyboard.Listen(Key.A, ButtonState.Down, kaannaPelaajaa, null, pelaaja2, 4.0);
327        Keyboard.Listen(Key.A, ButtonState.Released, kaannaPelaajaa, null, pelaaja2, 0.0);
328        Keyboard.Listen(Key.D, ButtonState.Down, kaannaPelaajaa, null, pelaaja2, -4.0);
329        Keyboard.Listen(Key.D, ButtonState.Released, kaannaPelaajaa, null, pelaaja2, -0.0);
330        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, null, pelaaja2);
331
332        //Keyboard.Listen(Key.Down, ButtonState.Pressed, LiikutaPelaajaa, null, new Vector(0, -voima));
333
334        //Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaajaX, null);
335        //Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaajaX, null);
336        //Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaajaY, null);
337        //Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelaajaY, null);
338    }
339    void kaannaPelaajaa(Pelaaja pelaaja, double nopeus)
340    {
341        if (pelaaja == null) return;
342        if (pelaaja.Angle.Cos < 0)
343        {
344            pelaaja.TextureWrapSize = new Vector(1, -1);
345        }
346        else
347        {
348            pelaaja.TextureWrapSize = new Vector(1, 1);
349        }
350        pelaaja.AngularVelocity = nopeus;
351    }
352    void LiikutaPelaajaa(Pelaaja pelaaja)
353    {
354        if (pelaaja == null) return;
355        Vector pelaajanSuunta = Vector.FromLengthAndAngle(100000.0, pelaaja.Angle);
356        pelaaja.Push(pelaajanSuunta);
357    }
358}
Note: See TracBrowser for help on using the repository browser.