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

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