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

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