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

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