source: 2017/24/IlariI/piXgel GAmE/piXgel GAmE/piXgel_GAmE/piXgel_GAmE.cs @ 8797

Revision 8797, 9.8 KB checked in by npo17_16, 5 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 piXgel_GAmE : PhysicsGame
10{
11    AssaultRifle hahmonase;
12
13    Image hahmonkuva = LoadImage("hahmo");
14    Image hahmonkuvavasemmalle = LoadImage("hahmovasemmalle");
15    Image hahmonkuvatakaa = LoadImage("hahmotakaa");
16    Image hahmonkuvaoikealle = LoadImage("hahmooikealle");
17    Image vihollinenkuva = LoadImage("vihollinen");
18    Image olioruumis = LoadImage("olioruumis");
19    Image ruumis = LoadImage("ruumis");
20    //Image ruumis zoom = (30, 30);
21
22    Image[] hahmonKavely = LoadImages("hahmo", "hahmo2");
23    Image[] hahmo2Kavely = LoadImages("hahmovasemmalle", "hahmovasemmalle2");
24    Image[] hahmo3kavely = LoadImages("hahmooikealle", "hahmooikealle2");
25    Image[] hahmo4kavely = LoadImages("hahmotakaa", "hahmotakaa2");
26
27    //Image[] hahmonKavely = LoadImages("hahmo", "hahmo2");
28    //Image[] hahmo2Kavely = LoadImages("hahmovasemmalle", "hahmovasemmalle2");
29    //Image[] hahmo3kavely = LoadImages("hahmooikealle", "hahmooikealle2");
30    //Image[] hahmo4kavely = LoadImages("hahmotakaa", "hahmotakaa2");
31
32    private Animation hahmon2Kavely;
33
34
35
36
37    IntMeter pisteLaskuri;
38    PhysicsObject vihollinen;
39
40    PhysicsObject hahmo;
41    Vector nopeusVasemmalle = new Vector(-100.0, 0.0);
42    Vector nopeusOikealle = new Vector(100.0, 0.0);
43    Vector nopeusYlos = new Vector(0.0, 100.0);
44    Vector nopeusAlas = new Vector(0.0, -100.0);
45
46    Vector pysahtuuVasemmalle = new Vector(0.0, 0.0);
47    Vector pysahtuuOikealle = new Vector(0.0, 0.0);
48    Vector pysahtuuYlos = new Vector(0.0, 0.0);
49    Vector pysahtuuAlas = new Vector(0.0, 0.0);
50    Vector suuntajohononkäveltyviimeksi = Vector.Zero;
51
52    public override void Begin()
53    {
54        hahmo = new PhysicsObject(30, 30);
55       
56        hahmo.CanRotate = false;
57        hahmo.Restitution = 0.0;
58        hahmo.Image = hahmonkuva;
59        hahmonase = new AssaultRifle(30, 10);
60        hahmonase.Image = null;
61        SmoothTextures = false;
62        hahmonase.Color = Color.Transparent;
63        //hahmo.Animation = new Animation(hahmonKavely);
64        //hahmo.Animation.Start();
65        //hahmo.Animation.FPS = 10;
66
67
68        hahmonase.ProjectileCollision = Ammusosui;
69        hahmo.Add(hahmonase);
70
71        Keyboard.Listen(Key.Space, ButtonState.Down, Ammuaseella, "Ammu", hahmonase);
72
73        LuoVihu();
74
75
76
77
78
79
80        Luopistelaskuri();
81
82        Add(hahmo);
83
84        Timer vihollispawner = new Timer();
85        vihollispawner.Interval = 3.0;
86        vihollispawner.Timeout += LuoVihu;
87        vihollispawner.Start();
88
89        //Timer animoija = new Timer();
90        //animoija.Interval = 0.5;
91        //animoija.Timeout += Liikkuja;
92        //animoija.Start();
93
94
95        LuoKentta();
96        // TODO: Kirjoita ohjelmakoodisi tähän();
97
98        Keyboard.Listen(Key.Left, ButtonState.Down, KavelytaPelaajaa, null, nopeusVasemmalle);
99        Keyboard.Listen(Key.Right, ButtonState.Down, KavelytaPelaajaa, null, nopeusOikealle);
100        Keyboard.Listen(Key.Up, ButtonState.Down, KavelytaPelaajaa, null, nopeusYlos);
101        Keyboard.Listen(Key.Down, ButtonState.Down, KavelytaPelaajaa, null, nopeusAlas);
102
103        Keyboard.Listen(Key.Left, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuVasemmalle);
104        Keyboard.Listen(Key.Right, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuOikealle);
105        Keyboard.Listen(Key.Up, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuYlos);
106        Keyboard.Listen(Key.Down, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuAlas);
107
108
109        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
110        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
111
112
113    }
114
115
116
117
118
119    void Ajastin()
120    {
121        Timer aikaLaskuri = new Timer();
122        aikaLaskuri.Start();
123
124        Label aikaNaytto = new Label();
125        aikaNaytto.TextColor = Color.White;
126        aikaNaytto.DecimalPlaces = 1;
127        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
128        Add(aikaNaytto);
129
130    }
131
132    void Liikkuja()
133    {
134
135    }
136
137    void LuoVihu()
138    {
139        PhysicsObject vihollinen = new PhysicsObject(40, 40);
140        vihollinen.CanRotate = false;
141        vihollinen.X = -300;
142        vihollinen.Y = -200;
143        vihollinen.Tag = "vihu";
144        vihollinen.Image = vihollinenkuva;
145        FollowerBrain seuraajanAivot = new FollowerBrain(hahmo);
146
147
148        vihollinen.Brain = seuraajanAivot;
149
150        seuraajanAivot.Speed = 80;
151        seuraajanAivot.DistanceFar = 6000;
152        seuraajanAivot.DistanceClose = 40;
153        seuraajanAivot.StopWhenTargetClose = true;
154
155
156        seuraajanAivot.TargetClose += KunPaaseeLahelle;
157
158        Add(vihollinen);
159        // .................................................................
160        PhysicsObject vihollinen2 = new PhysicsObject(40, 40);
161        vihollinen2.CanRotate = false;
162        vihollinen2.X = -0;
163        vihollinen2.Y = 300;
164        vihollinen2.Tag = "vihu";
165        vihollinen2.Image = vihollinenkuva;
166        FollowerBrain seuraajanAivot2 = new FollowerBrain(hahmo);
167
168
169        vihollinen2.Brain = seuraajanAivot2;
170
171        seuraajanAivot2.Speed = 80;
172        seuraajanAivot2.DistanceFar = 6000;
173        seuraajanAivot2.DistanceClose = 40;
174        seuraajanAivot2.StopWhenTargetClose = true;
175
176
177        seuraajanAivot2.TargetClose += KunPaaseeLahelle;
178
179        Add(vihollinen2);
180        //..........................................................................
181        PhysicsObject vihollinen3 = new PhysicsObject(40, 40);
182        vihollinen3.CanRotate = false;
183        vihollinen3.X = 300;
184        vihollinen3.Y = -200;
185        vihollinen3.Tag = "vihu";
186        vihollinen3.Image = vihollinenkuva;
187        FollowerBrain seuraajanAivot3 = new FollowerBrain(hahmo);
188
189
190
191        vihollinen3.Brain = seuraajanAivot3;
192
193        seuraajanAivot3.Speed = 80;
194        seuraajanAivot3.DistanceFar = 6000;
195        seuraajanAivot3.DistanceClose = 40;
196        seuraajanAivot3.StopWhenTargetClose = true;
197
198
199        seuraajanAivot3.TargetClose += KunPaaseeLahelle;
200
201        Add(vihollinen3);
202
203    }
204    void Luopistelaskuri()
205    {
206        pisteLaskuri = new IntMeter(0);
207
208        Label pisteNaytto = new Label();
209        pisteNaytto.X = Screen.Left + 100;
210        pisteNaytto.Y = Screen.Top - 100;
211        pisteNaytto.TextColor = Color.White;
212        pisteNaytto.Color = Color.Black;
213
214        pisteNaytto.BindTo(pisteLaskuri);
215        Add(pisteNaytto);
216
217        if (Equals("vihu"))
218        {
219            pisteLaskuri.Value += 1;
220        }
221
222    }
223
224    void LuoKentta()
225    {
226
227
228        PhysicsObject ylareuna = Level.CreateTopBorder(0.0, true);
229        PhysicsObject alareuna = Level.CreateBottomBorder(0.0, true);
230        PhysicsObject vasenreuna = Level.CreateLeftBorder(0.0, true);
231        PhysicsObject oikeareuna = Level.CreateRightBorder(0.0, true);
232       
233        alareuna.Color = Color.Transparent;
234        ylareuna.Color = Color.Transparent;
235        vasenreuna.Color = Color.Transparent;
236        oikeareuna.Color = Color.Transparent;
237       
238        //Level.CreateBorders(1.0, true);
239        ylareuna.Y -= 50.0;
240        alareuna.Y += 50.0;
241        vasenreuna.X += 50.0;
242        oikeareuna.X -= 50.0;
243
244        Level.Background.Color = Color.Black;
245        Camera.Follow(hahmo);
246        Camera.Zoom(1.5);
247        Image background = LoadImage("areena");
248        Level.Background.Image = background;
249        Level.Background.FitToLevel();
250
251
252    }
253
254    void Ammusosui(PhysicsObject ammus, PhysicsObject kohde)
255    {
256        ammus.Destroy();
257        if (kohde.Tag.Equals("vihu"))
258        {
259            kohde.Image = olioruumis;
260            kohde.Brain.Active = false;
261            Timer.SingleShot(1.0, delegate
262            {
263               
264                kohde.Destroy();
265            });
266
267        }
268
269    }
270
271    void Ammuaseella(AssaultRifle ase)
272    {
273        PhysicsObject ammus = ase.Shoot();
274
275        if (ammus != null)
276        {
277            ammus.Size *= 0.5;
278
279            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
280        }
281    }
282    void KunPaaseeLahelle()
283    {
284        Keyboard.Disable(Key.Space);
285        Keyboard.Disable(Key.Up);
286        Keyboard.Disable(Key.Down);
287        Keyboard.Disable(Key.Right);
288        Keyboard.Disable(Key.Left);
289
290        {
291            hahmo.Image = ruumis;
292            hahmo.Width = 65;
293            hahmo.Height = 50;
294           
295
296
297
298        }
299
300    }
301    void KavelytaPelaajaa(Vector suunta)
302    {
303        // asettaa hahmon nopeudeksi halutun suunnan:
304        hahmo.Velocity = suunta;
305
306        if (suunta != suuntajohononkäveltyviimeksi)
307        {
308
309            if (suunta.X < 0)
310            {
311                hahmonase.Angle = Angle.FromDegrees(180.0);
312                hahmo.Image = hahmonkuvavasemmalle;
313                hahmo.Animation = new Animation(hahmo2Kavely);
314
315            }
316            if (suunta.X > 0)
317            {
318                hahmonase.Angle = Angle.FromDegrees(0.0);
319                hahmo.Image = hahmonkuvaoikealle;
320                hahmo.Animation = new Animation(hahmo3kavely);
321
322            }
323            if (suunta.Y > 0)
324            {
325                hahmonase.Angle = Angle.FromDegrees(90.0);
326                hahmo.Image = hahmonkuvatakaa;
327                hahmo.Animation = new Animation(hahmo4kavely);
328
329            }
330            if (suunta.Y < 0)
331            {
332                hahmonase.Angle = Angle.FromDegrees(270.0);
333                hahmo.Image = hahmonkuva;
334                hahmo.Animation = new Animation(hahmonKavely);
335            }
336
337            hahmo.Animation.FPS = 2;
338            hahmo.Animation.Start();
339            suuntajohononkäveltyviimeksi = suunta;
340        }
341
342
343
344
345    }
346}
Note: See TracBrowser for help on using the repository browser.