source: 2017/24/ValtteriM/BallTag/BallTag/BallTag/BallTag.cs @ 8782

Revision 8782, 14.3 KB checked in by npo17_3, 2 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 BallTag : PhysicsGame
10{
11    //AxleJoint aj;
12
13    PlatformCharacter naapuri;
14    Image olionKuva3 = LoadImage("naapurileikattu");
15
16    PhysicsObject pallo;
17
18    PlatformCharacter bonnie;
19    Image olionKuva = LoadImage("bonnie");
20
21    PlatformCharacter mei1;
22    Image olionKuva2 = LoadImage("mei1");
23
24    Timer ajastin;
25    PlatformCharacter pika3;
26    Image olionKuva4 = LoadImage("pika3");
27    Image tas = LoadImage("office");
28    private Image[] naapuriKavely = LoadImages("naapurileikattu1", "naapurileikattu2", "naapurileikattu3");
29    private Image[] bonnieKavely = LoadImages("bonnie1", "bonnie2", "bonnie3");
30    private Image[] pika3Kavely = LoadImages("pika3", "pika4");
31    private Image[] mei1Kavely = LoadImages("mei1", "mei2");
32    //Animation liike =
33
34    int pelaajia = 4;
35    string kentta = "kentta1";
36
37    public override void Begin()
38    {
39        MultiSelectWindow alkuValikko = new MultiSelectWindow("BallTag", "Aloita peli", "valitse kenttä", "Lopeta");
40        Add(alkuValikko);
41        alkuValikko.AddItemHandler(0, Maara);
42        alkuValikko.AddItemHandler(1, valitsekentta);
43        alkuValikko.AddItemHandler(2, Exit);
44    }
45
46    void Maara()
47    {
48        MultiSelectWindow alkuValikko = new MultiSelectWindow("Montako pelaajaa", "2", "3", "4");
49        Add(alkuValikko);
50        alkuValikko.AddItemHandler(0, ValitseMaara, 2);
51        alkuValikko.AddItemHandler(1, ValitseMaara, 3);
52        alkuValikko.AddItemHandler(2, ValitseMaara, 4);
53    }
54
55    void ValitseMaara(int maara)
56    {
57        pelaajia = maara;
58        AloitaPeli();
59    }
60
61    void valitsekentta()
62    {
63        MultiSelectWindow alkuValikko = new MultiSelectWindow("valitse kenttä", "office", "forest");
64        Add(alkuValikko);
65        alkuValikko.AddItemHandler(0, valitse, "kentta1");
66        alkuValikko.AddItemHandler(1, valitse, "kentta2");
67    }
68
69    void valitse(string nimi)
70    {
71        kentta = nimi;
72        Begin();
73    }
74
75    void AloitaPeli()
76    {
77        //Window.Width = 1800;
78        //Window.Height = 1000;
79        Level.Width = Screen.Width;
80        Level.Height = Screen.Height;
81        Level.Width = Window.Width;
82        Level.Height = Window.Height;
83
84        //IsFullScreen = true;
85        Gravity = new Vector(0.0, -500.0);
86        luokentta();
87
88       
89        //luohamo();
90        //luohamo2();
91        //luohamo3();
92        //luohamo4();
93        naapuri.CollisionIgnoreGroup = 1;
94        bonnie.CollisionIgnoreGroup = 1;
95        mei1.CollisionIgnoreGroup = 1;
96        pika3.CollisionIgnoreGroup = 1;
97        luopallo();
98
99        ajastin = new Timer();
100        ajastin.Interval = 60;
101        ajastin.Timeout += tarkistus;
102        ajastin.Start();
103        Label aikaNaytto = new Label();
104        aikaNaytto.TextColor = Color.White;
105        aikaNaytto.DecimalPlaces = 1;
106        aikaNaytto.BindTo(ajastin.SecondCounter);
107        Add(aikaNaytto);
108
109        List<PhysicsObject> pelaajat = new List<PhysicsObject>();
110        pelaajat.Add(mei1);
111        pelaajat.Add(bonnie);
112        if (pelaajia == 2)
113        {
114            pika3.Destroy();
115            naapuri.Destroy();
116        }
117        if (pelaajia == 3)
118        {
119            pelaajat.Add(naapuri);
120            pika3.Destroy();
121        }
122        if (pelaajia == 4)
123        {
124            pelaajat.Add(naapuri);
125            pelaajat.Add(pika3);
126        }
127
128
129        PhysicsObject alkuhippa = RandomGen.SelectOne<PhysicsObject>(pelaajat);
130        pallo.Position = alkuhippa.Position;
131        osuipalloon(alkuhippa, pallo);
132
133
134        //Camera.ZoomTo(new Vector(Level.Right+50, Level.Bottom+50), new Vector(Level.Left-50,Level.Top-50));
135
136        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
137        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
138        Keyboard.Listen(Key.F1, ButtonState.Pressed, restart, "restart");
139        Keyboard.Listen(Key.F2, ButtonState.Pressed, A, "A");
140
141        Keyboard.Listen(Key.L, ButtonState.Down, Liikuoikealle, "Liikuoikealle", naapuri);
142        Keyboard.Listen(Key.L, ButtonState.Released, Pysayta, "Liikuoikealle", naapuri);
143        Keyboard.Listen(Key.J, ButtonState.Down, Liikuvasemmalle, "Liikuvasemmalle", naapuri);
144        Keyboard.Listen(Key.J, ButtonState.Released, Pysayta, "Liikuvasemmalle", naapuri);
145        Keyboard.Listen(Key.I, ButtonState.Pressed, hyppaa, "hyppaa", naapuri);
146        Keyboard.Listen(Key.K, ButtonState.Down, kyykky, "Liikuvasemmalle", naapuri);
147        Keyboard.Listen(Key.K, ButtonState.Released, nouse, "Liikuvasemmalle", naapuri);
148
149        Keyboard.Listen(Key.O, ButtonState.Pressed, heita, "heita", naapuri);
150
151
152        Keyboard.Listen(Key.D, ButtonState.Down, Liikuoikealle, "Liikuoikealle", bonnie);
153        Keyboard.Listen(Key.A, ButtonState.Down, Liikuvasemmalle, "Liikuvasemmalle", bonnie);
154        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "hyppaa", bonnie);
155        Keyboard.Listen(Key.A, ButtonState.Released, Pysayta, "Liikuvasemmalle", bonnie);
156        Keyboard.Listen(Key.D, ButtonState.Released, Pysayta, "Liikuoikealle", bonnie);
157        Keyboard.Listen(Key.S, ButtonState.Down, kyykky, "kyykky", bonnie);
158        Keyboard.Listen(Key.S, ButtonState.Released, nouse, "nouse", bonnie);
159        Keyboard.Listen(Key.E, ButtonState.Pressed, heita, "heita", bonnie);
160
161
162
163        Keyboard.Listen(Key.NumPad6, ButtonState.Down, Liikuoikealle, "Liikuoikealle", mei1);
164        Keyboard.Listen(Key.NumPad4, ButtonState.Down, Liikuvasemmalle, "Liikuvasemmalle", mei1);
165        Keyboard.Listen(Key.NumPad8, ButtonState.Pressed, hyppaa, "hyppaa", mei1);
166        Keyboard.Listen(Key.NumPad4, ButtonState.Released, Pysayta, "Liikuvasemmalle", mei1);
167        Keyboard.Listen(Key.NumPad6, ButtonState.Released, Pysayta, "Liikuoikealle", mei1);
168        Keyboard.Listen(Key.NumPad5, ButtonState.Down, kyykky, "kyykky", mei1);
169        Keyboard.Listen(Key.NumPad5, ButtonState.Released, nouse, "nouse", mei1);
170        Keyboard.Listen(Key.NumPad7, ButtonState.Pressed, heita, "heita", mei1);
171
172        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuoikealle, "Liikuoikealle", pika3);
173        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuvasemmalle, "Liikuvasemmalle", pika3);
174        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "hyppaa", pika3);
175        Keyboard.Listen(Key.Left, ButtonState.Released, Pysayta, "Liikuvasemmalle", pika3);
176        Keyboard.Listen(Key.Right, ButtonState.Released, Pysayta, "Liikuoikealle", pika3);
177        Keyboard.Listen(Key.Down, ButtonState.Down, kyykky, "kyykky", pika3);
178        Keyboard.Listen(Key.Down, ButtonState.Released, nouse, "nouse", pika3);
179        Keyboard.Listen(Key.RightControl, ButtonState.Pressed, heita, "heita", pika3);
180
181        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, hamoliikkuu, "Liikuta pelaajaa tattia pyörittämällä.", bonnie);
182        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "hyppaa", bonnie);
183        ControllerOne.Listen(Button.X, ButtonState.Down, kyykky, "Liikuvasemmalle", bonnie);
184        ControllerOne.Listen(Button.X, ButtonState.Released, nouse, "Liikuvasemmalle", bonnie);
185        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Pressed, heita, "heita", bonnie);
186
187        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, hamoliikkuu, "Liikuta pelaajaa tattia pyörittämällä.", mei1);
188        ControllerTwo.Listen(Button.A, ButtonState.Pressed, hyppaa, "hyppaa", mei1);
189        ControllerTwo.Listen(Button.X, ButtonState.Down, kyykky, "Liikuvasemmalle", mei1);
190        ControllerTwo.Listen(Button.X, ButtonState.Released, nouse, "Liikuvasemmalle", mei1);
191        ControllerTwo.Listen(Button.LeftTrigger, ButtonState.Pressed, heita, "heita", mei1);
192
193        ControllerThree.ListenAnalog(AnalogControl.LeftStick, 0.1, hamoliikkuu, "Liikuta pelaajaa tattia pyörittämällä.", naapuri);
194        ControllerThree.Listen(Button.A, ButtonState.Pressed, hyppaa, "hyppaa", naapuri);
195        ControllerThree.Listen(Button.X, ButtonState.Down, kyykky, "Liikuvasemmalle", naapuri);
196        ControllerThree.Listen(Button.X, ButtonState.Released, nouse, "Liikuvasemmalle", naapuri);
197        ControllerThree.Listen(Button.LeftTrigger, ButtonState.Pressed, heita, "heita", naapuri);
198
199        ControllerFour.ListenAnalog(AnalogControl.LeftStick, 0.1, hamoliikkuu, "Liikuta pelaajaa tattia pyörittämällä.", pika3);
200        ControllerFour.Listen(Button.A, ButtonState.Pressed, hyppaa, "hyppaa", pika3);
201        ControllerFour.Listen(Button.X, ButtonState.Down, kyykky, "Liikuvasemmalle", pika3);
202        ControllerFour.Listen(Button.X, ButtonState.Released, nouse, "Liikuvasemmalle", pika3);
203        ControllerFour.Listen(Button.LeftTrigger, ButtonState.Pressed, heita, "heita", pika3);
204    }
205
206    void hamoliikkuu(AnalogState tatinTila, PlatformCharacter hamo)
207    {
208        Vector tatinAsento = tatinTila.StateVector;
209        hamo.Walk(tatinAsento.X * 500.0);
210        //naapuri.AnimWalk.Resume();
211    }
212
213    void kyykky(PlatformCharacter hamo)
214    {
215        if (hamo.Height > 65)
216        {
217            hamo.Height = hamo.Height / 2;
218        }
219    }
220    void nouse(PlatformCharacter hamo)
221    {
222        hamo.Height = hamo.Height * 2;
223    }
224    void Liikuoikealle(PlatformCharacter hamo)
225    {
226        // hamo.AnimWalk.Start();
227
228        hamo.Walk(500.0);
229
230
231        // if (hamo.Tag.Equals("bonnie"))
232        // if (hamo.Tag.Equals("naapuri"))
233        {
234            hamo.AnimWalk.Resume();
235        }
236    }
237    void Pysayta(PlatformCharacter hamo)
238    {
239        hamo.AnimWalk.Pause();
240    }
241
242    void Liikuvasemmalle(PlatformCharacter hamo)
243    {
244        hamo.Walk(-500.0);
245        hamo.AnimWalk.Resume();
246
247    }
248    void hyppaa(PlatformCharacter hamo)
249    {
250        hamo.Jump(750.0);
251    }
252
253    void luokentta()
254    {
255        TileMap ruudut = TileMap.FromLevelAsset(kentta);
256        ruudut.SetTileMethod('#', LuoPalikka, Color.Gray);
257        ruudut.SetTileMethod('N', luohamo3);
258        ruudut.SetTileMethod('B', luohamo);
259        ruudut.SetTileMethod('M', luohamo2);
260        ruudut.SetTileMethod('p', luohamo4);
261        ruudut.SetTileMethod('f', LuoPalikka, Color.Green);
262        ruudut.Execute(50, 50);
263
264        if(kentta == "kentta1")
265        {
266            Level.Background.Image = LoadImage("office");
267        }
268        if (kentta == "kentta2")
269        {
270            Level.Background.Image = LoadImage("forest");
271        }
272    }
273
274    void LuoPalikka(Vector paikka, double leveys, double korkeus, Color vari)
275    {
276        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
277        palikka.Position = paikka;
278        palikka.Shape = Shape.Rectangle;
279        palikka.Color = vari;
280        Add(palikka);
281    }
282
283    void luohamo3(Vector paikka, double leveys, double korkeus)
284    {
285        naapuri = new PlatformCharacter(70, 70);
286        naapuri.Image = olionKuva3;
287        naapuri.Tag = "naapuri";
288        naapuri.Position = paikka;
289        naapuri.AnimIdle = new Animation(olionKuva3);
290        naapuri.AnimWalk = new Animation(naapuriKavely);
291        naapuri.Color = Color.Orange;
292        AddCollisionHandler(naapuri, "pallo", osuipalloon);
293        //naapuri.Animation = new Animation(naapuriKavely);
294        //naapuri.Animation.Start();
295        Add(naapuri);
296    }
297
298
299    void luohamo(Vector paikka, double leveys, double korkeus)
300    {
301        bonnie = new PlatformCharacter(70, 70);
302        bonnie.Image = olionKuva;
303        bonnie.Tag = "bonnie";
304        bonnie.Position = paikka;
305        AddCollisionHandler(bonnie, "pallo", osuipalloon);
306        bonnie.Color = Color.Blue;
307        bonnie.AnimIdle = new Animation(olionKuva);
308        bonnie.AnimWalk = new Animation(bonnieKavely);
309        Add(bonnie);
310
311
312    }
313    void luohamo2(Vector paikka, double leveys, double korkeus)
314    {
315        mei1 = new PlatformCharacter(70, 70);
316        mei1.Image = olionKuva2;
317        mei1.Tag = "mei1";
318        mei1.Position = paikka;
319        mei1.Color = Color.Red;
320        mei1.AnimIdle = new Animation(olionKuva2);
321        mei1.AnimWalk = new Animation(mei1Kavely);
322        AddCollisionHandler(mei1, "pallo", osuipalloon);
323        Add(mei1);
324
325
326    }
327    void luohamo4(Vector paikka, double leveys, double korkeus)
328    {
329        pika3 = new PlatformCharacter(70, 70);
330        pika3.Image = olionKuva4;
331        pika3.Tag = "pika3";
332        pika3.Position = paikka;
333        pika3.Color = Color.Yellow;
334        pika3.AnimIdle = new Animation(olionKuva4);
335        pika3.AnimWalk = new Animation(pika3Kavely);
336        AddCollisionHandler(pika3, "pallo", osuipalloon);
337        Add(pika3);
338
339
340    }
341    void restart()
342    {
343
344        ClearAll();
345        AloitaPeli();
346    }
347    void A()
348    {
349        ClearAll();
350        Begin();
351       
352    }
353
354
355    void luopallo()
356    {
357        pallo = new PhysicsObject(40, 40, Shape.Circle);
358        pallo.Tag = "pallo";
359        Add(pallo);
360    }
361    void osuipalloon(PhysicsObject hamo, PhysicsObject kohde)
362    {
363        //aj = new AxleJoint(hamo, kohde);
364        //Add(aj);
365
366        kohde.Destroy();
367        GameObject pallo = new GameObject(kohde.Width, kohde.Height, Shape.Circle);
368        hamo.Add(pallo);
369
370        kohde.Color = hamo.Color;
371        pallo.Color = hamo.Color;
372    }
373    void heita(PlatformCharacter heittaja)
374    {
375        //aj.Destroy();
376
377        if (heittaja.ObjectCount > 0)
378        {
379            heittaja.Objects[0].Destroy();
380
381            luopallo();
382            pallo.Color = heittaja.Color;
383            pallo.Hit(new Vector(heittaja.FacingDirection.GetVector().X * 1000, 1000));
384            pallo.Position = heittaja.Position +  new Vector(heittaja.FacingDirection.GetVector().X * heittaja.Width, 0);
385        } 
386
387    }
388
389    void tarkistus()
390    {
391        if(pallo.Color==Color.Orange)
392        {
393            naapuri.Destroy();
394        }
395        if (pallo.Color == Color.Blue)
396        {
397            bonnie.Destroy();
398        }
399        if (pallo.Color == Color.Red)
400        {
401            mei1.Destroy();
402        }
403        if (pallo.Color == Color.Yellow)
404        {
405            pika3.Destroy();
406        }
407        Timer.SingleShot(3, restart);
408        //ajastin.Reset();
409        //ajastin.Start();
410       
411    }
412}
413
414
415
416
417
418
419
Note: See TracBrowser for help on using the repository browser.