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

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