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

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