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

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