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

Revision 8737, 12.1 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 olionKuva = LoadImage("naapurileikattu");
15
16    PhysicsObject pallo;
17
18    PlatformCharacter bonnie;
19    Image olionKuva2 = LoadImage("bonnie");
20
21    PlatformCharacter mei1;
22    Image olionKuva3 = 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    public override void Begin()
34    {
35        //Window.Width = 1800;
36        //Window.Height = 1000;
37        Level.Width = Screen.Width;
38        Level.Height = Screen.Height;
39        Level.Width = Window.Width;
40        Level.Height = Window.Height;
41
42        //IsFullScreen = true;
43        Gravity = new Vector(0.0, -500.0);
44        luokentta();
45
46        Level.Background.Image = tas;
47        //luohamo();
48        //luohamo2();
49        //luohamo3();
50        //luohamo4();
51        naapuri.CollisionIgnoreGroup = 1;
52        bonnie.CollisionIgnoreGroup = 1;
53        mei1.CollisionIgnoreGroup = 1;
54        pika3.CollisionIgnoreGroup = 1;
55        luopallo();
56
57        ajastin = new Timer();
58        ajastin.Interval = 60;
59        ajastin.Timeout += tarkistus;
60        ajastin.Start();
61        Label aikaNaytto = new Label();
62        aikaNaytto.TextColor = Color.White;
63        aikaNaytto.DecimalPlaces = 1;
64        aikaNaytto.BindTo(ajastin.SecondCounter);
65        Add(aikaNaytto);
66
67        //Camera.ZoomTo(new Vector(Level.Right+50, Level.Bottom+50), new Vector(Level.Left-50,Level.Top-50));
68
69        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
70        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
71        Keyboard.Listen(Key.F1, ButtonState.Pressed, restart, "restart");
72
73        Keyboard.Listen(Key.L, ButtonState.Down, Liikuoikealle, "Liikuoikealle", naapuri);
74        Keyboard.Listen(Key.L, ButtonState.Released, Pysayta, "Liikuoikealle", naapuri);
75        Keyboard.Listen(Key.J, ButtonState.Down, Liikuvasemmalle, "Liikuvasemmalle", naapuri);
76        Keyboard.Listen(Key.J, ButtonState.Released, Pysayta, "Liikuvasemmalle", naapuri);
77        Keyboard.Listen(Key.I, ButtonState.Pressed, hyppaa, "hyppaa", naapuri);
78        Keyboard.Listen(Key.K, ButtonState.Down, kyykky, "Liikuvasemmalle", naapuri);
79        Keyboard.Listen(Key.K, ButtonState.Released, nouse, "Liikuvasemmalle", naapuri);
80
81        Keyboard.Listen(Key.O, ButtonState.Pressed, heita, "heita", naapuri);
82
83
84        Keyboard.Listen(Key.D, ButtonState.Down, Liikuoikealle, "Liikuoikealle", bonnie);
85        Keyboard.Listen(Key.A, ButtonState.Down, Liikuvasemmalle, "Liikuvasemmalle", bonnie);
86        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "hyppaa", bonnie);
87        Keyboard.Listen(Key.A, ButtonState.Released, Pysayta, "Liikuvasemmalle", bonnie);
88        Keyboard.Listen(Key.D, ButtonState.Released, Pysayta, "Liikuoikealle", bonnie);
89        Keyboard.Listen(Key.S, ButtonState.Down, kyykky, "kyykky", bonnie);
90        Keyboard.Listen(Key.S, ButtonState.Released, nouse, "nouse", bonnie);
91        Keyboard.Listen(Key.E, ButtonState.Pressed, heita, "heita", bonnie);
92
93
94
95        Keyboard.Listen(Key.NumPad6, ButtonState.Down, Liikuoikealle, "Liikuoikealle", mei1);
96        Keyboard.Listen(Key.NumPad4, ButtonState.Down, Liikuvasemmalle, "Liikuvasemmalle", mei1);
97        Keyboard.Listen(Key.NumPad8, ButtonState.Pressed, hyppaa, "hyppaa", mei1);
98        Keyboard.Listen(Key.NumPad4, ButtonState.Released, Pysayta, "Liikuvasemmalle", mei1);
99        Keyboard.Listen(Key.NumPad6, ButtonState.Released, Pysayta, "Liikuoikealle", mei1);
100        Keyboard.Listen(Key.NumPad5, ButtonState.Down, kyykky, "kyykky", mei1);
101        Keyboard.Listen(Key.NumPad5, ButtonState.Released, nouse, "nouse", mei1);
102        Keyboard.Listen(Key.NumPad7, ButtonState.Pressed, heita, "heita", mei1);
103
104        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuoikealle, "Liikuoikealle", pika3);
105        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuvasemmalle, "Liikuvasemmalle", pika3);
106        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "hyppaa", pika3);
107        Keyboard.Listen(Key.Left, ButtonState.Released, Pysayta, "Liikuvasemmalle", pika3);
108        Keyboard.Listen(Key.Right, ButtonState.Released, Pysayta, "Liikuoikealle", pika3);
109        Keyboard.Listen(Key.Down, ButtonState.Down, kyykky, "kyykky", pika3);
110        Keyboard.Listen(Key.Down, ButtonState.Released, nouse, "nouse", pika3);
111        Keyboard.Listen(Key.RightControl, ButtonState.Pressed, heita, "heita", pika3);
112
113        ControllerOne.ListenAnalog(AnalogControl.LeftStick, 0.1, hamoliikkuu, "Liikuta pelaajaa tattia pyörittämällä.", naapuri);
114        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "hyppaa", naapuri);
115        ControllerOne.Listen(Button.X, ButtonState.Down, kyykky, "Liikuvasemmalle", naapuri);
116        ControllerOne.Listen(Button.X, ButtonState.Released, nouse, "Liikuvasemmalle", naapuri);
117        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Pressed, heita, "heita", naapuri);
118
119        ControllerTwo.ListenAnalog(AnalogControl.LeftStick, 0.1, hamoliikkuu, "Liikuta pelaajaa tattia pyörittämällä.", bonnie);
120        ControllerTwo.Listen(Button.A, ButtonState.Pressed, hyppaa, "hyppaa", bonnie);
121        ControllerTwo.Listen(Button.X, ButtonState.Down, kyykky, "Liikuvasemmalle", bonnie);
122        ControllerTwo.Listen(Button.X, ButtonState.Released, nouse, "Liikuvasemmalle", bonnie);
123        ControllerTwo.Listen(Button.LeftTrigger, ButtonState.Pressed, heita, "heita", bonnie);
124
125        ControllerThree.ListenAnalog(AnalogControl.LeftStick, 0.1, hamoliikkuu, "Liikuta pelaajaa tattia pyörittämällä.", pika3);
126        ControllerThree.Listen(Button.A, ButtonState.Pressed, hyppaa, "hyppaa", pika3);
127        ControllerThree.Listen(Button.X, ButtonState.Down, kyykky, "Liikuvasemmalle", pika3);
128        ControllerThree.Listen(Button.X, ButtonState.Released, nouse, "Liikuvasemmalle", pika3);
129        ControllerThree.Listen(Button.LeftTrigger, ButtonState.Pressed, heita, "heita", pika3);
130
131        ControllerFour.ListenAnalog(AnalogControl.LeftStick, 0.1, hamoliikkuu, "Liikuta pelaajaa tattia pyörittämällä.", mei1);
132        ControllerFour.Listen(Button.A, ButtonState.Pressed, hyppaa, "hyppaa", mei1);
133        ControllerFour.Listen(Button.X, ButtonState.Down, kyykky, "Liikuvasemmalle", mei1);
134        ControllerFour.Listen(Button.X, ButtonState.Released, nouse, "Liikuvasemmalle", mei1);
135        ControllerFour.Listen(Button.LeftTrigger, ButtonState.Pressed, heita, "heita", mei1);
136    }
137
138    void hamoliikkuu(AnalogState tatinTila, PlatformCharacter hamo)
139    {
140        Vector tatinAsento = tatinTila.StateVector;
141        hamo.Walk(tatinAsento.X * 500.0);
142        //naapuri.AnimWalk.Resume();
143    }
144
145    void kyykky(PlatformCharacter hamo)
146    {
147        if (hamo.Height > 65)
148        {
149            hamo.Height = hamo.Height / 2;
150        }
151    }
152    void nouse(PlatformCharacter hamo)
153    {
154        hamo.Height = hamo.Height * 2;
155    }
156    void Liikuoikealle(PlatformCharacter hamo)
157    {
158        // hamo.AnimWalk.Start();
159
160        hamo.Walk(500.0);
161
162
163        // if (hamo.Tag.Equals("bonnie"))
164        // if (hamo.Tag.Equals("naapuri"))
165        {
166            hamo.AnimWalk.Resume();
167        }
168    }
169    void Pysayta(PlatformCharacter hamo)
170    {
171        hamo.AnimWalk.Pause();
172    }
173
174    void Liikuvasemmalle(PlatformCharacter hamo)
175    {
176        hamo.Walk(-500.0);
177        hamo.AnimWalk.Resume();
178
179    }
180    void hyppaa(PlatformCharacter hamo)
181    {
182        hamo.Jump(750.0);
183    }
184
185    void luokentta()
186    {
187        TileMap ruudut = TileMap.FromLevelAsset("kentta1");
188        ruudut.SetTileMethod('#', LuoPalikka);
189        ruudut.SetTileMethod('N', luohamo);
190        ruudut.SetTileMethod('B', luohamo2);
191        ruudut.SetTileMethod('M', luohamo3);
192        ruudut.SetTileMethod('p', luohamo4);
193        ruudut.Execute(50, 50);
194    }
195
196    void LuoPalikka(Vector paikka, double leveys, double korkeus)
197    {
198        PhysicsObject palikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
199        palikka.Position = paikka;
200        palikka.Shape = Shape.Rectangle;
201        palikka.Color = Color.Gray;
202        Add(palikka);
203    }
204
205    void luohamo(Vector paikka, double leveys, double korkeus)
206    {
207        naapuri = new PlatformCharacter(70, 70);
208        naapuri.Image = olionKuva;
209        naapuri.Tag = "naapuri";
210        naapuri.Position = paikka;
211        naapuri.AnimIdle = new Animation(olionKuva);
212        naapuri.AnimWalk = new Animation(naapuriKavely);
213        naapuri.Color = Color.Green;
214        AddCollisionHandler(naapuri, "pallo", osuipalloon);
215        //naapuri.Animation = new Animation(naapuriKavely);
216        //naapuri.Animation.Start();
217        Add(naapuri);
218    }
219
220
221    void luohamo2(Vector paikka, double leveys, double korkeus)
222    {
223        bonnie = new PlatformCharacter(70, 70);
224        bonnie.Image = olionKuva2;
225        bonnie.Tag = "bonnie";
226        bonnie.Position = paikka;
227        AddCollisionHandler(bonnie, "pallo", osuipalloon);
228        bonnie.Color = Color.Blue;
229        bonnie.AnimIdle = new Animation(olionKuva2);
230        bonnie.AnimWalk = new Animation(bonnieKavely);
231        Add(bonnie);
232
233
234    }
235    void luohamo3(Vector paikka, double leveys, double korkeus)
236    {
237        mei1 = new PlatformCharacter(70, 70);
238        mei1.Image = olionKuva3;
239        mei1.Tag = "mei1";
240        mei1.Position = paikka;
241        mei1.Color = Color.Red;
242        mei1.AnimIdle = new Animation(olionKuva3);
243        mei1.AnimWalk = new Animation(mei1Kavely);
244        AddCollisionHandler(mei1, "pallo", osuipalloon);
245        Add(mei1);
246
247
248    }
249    void luohamo4(Vector paikka, double leveys, double korkeus)
250    {
251        pika3 = new PlatformCharacter(70, 70);
252        pika3.Image = olionKuva4;
253        pika3.Tag = "pika3";
254        pika3.Position = paikka;
255        pika3.Color = Color.Yellow;
256        pika3.AnimIdle = new Animation(olionKuva4);
257        pika3.AnimWalk = new Animation(pika3Kavely);
258        AddCollisionHandler(pika3, "pallo", osuipalloon);
259        Add(pika3);
260
261
262    }
263    void restart()
264    {
265
266        ClearAll();
267        Begin();
268    }
269    void luopallo()
270    {
271        pallo = new PhysicsObject(40, 40, Shape.Circle);
272        pallo.Tag = "pallo";
273        Add(pallo);
274    }
275    void osuipalloon(PhysicsObject hamo, PhysicsObject kohde)
276    {
277        //aj = new AxleJoint(hamo, kohde);
278        //Add(aj);
279
280        kohde.Destroy();
281        GameObject pallo = new GameObject(kohde.Width, kohde.Height, Shape.Circle);
282        hamo.Add(pallo);
283
284        kohde.Color = hamo.Color;
285        pallo.Color = hamo.Color;
286    }
287    void heita(PlatformCharacter heittaja)
288    {
289        //aj.Destroy();
290
291        if (heittaja.ObjectCount > 0)
292        {
293            heittaja.Objects[0].Destroy();
294
295            luopallo();
296            pallo.Color = heittaja.Color;
297            pallo.Hit(new Vector(heittaja.FacingDirection.GetVector().X * 1000, 1000));
298            pallo.Position = heittaja.Position +  new Vector(heittaja.FacingDirection.GetVector().X * heittaja.Width, 0);
299        } 
300
301    }
302
303    void tarkistus()
304    {
305        if(pallo.Color==Color.Green)
306        {
307            naapuri.Destroy();
308        }
309        if (pallo.Color == Color.Blue)
310        {
311            bonnie.Destroy();
312        }
313        if (pallo.Color == Color.Red)
314        {
315            mei1.Destroy();
316        }
317        if (pallo.Color == Color.Yellow)
318        {
319            pika3.Destroy();
320        }
321        Timer.SingleShot(3, restart);
322        //ajastin.Reset();
323        //ajastin.Start();
324       
325    }
326}
327
328
329
330
331
332
333
Note: See TracBrowser for help on using the repository browser.