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

Revision 8760, 7.8 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
122    }
123
124    void LuoVihu()
125    {
126        PhysicsObject vihollinen = new PhysicsObject(40, 40);
127        vihollinen.CanRotate = false;
128        vihollinen.X = -300;
129        vihollinen.Y = -200;
130        vihollinen.Tag = "vihu";
131
132        FollowerBrain seuraajanAivot = new FollowerBrain(hahmo);
133
134
135        vihollinen.Brain = seuraajanAivot;
136
137        seuraajanAivot.Speed = 80;
138        seuraajanAivot.DistanceFar = 6000;
139        seuraajanAivot.DistanceClose = 40;
140        seuraajanAivot.StopWhenTargetClose = true;
141
142
143        seuraajanAivot.TargetClose += KunPaaseeLahelle;
144
145        Add(vihollinen);
146     // .................................................................
147        PhysicsObject vihollinen2 = new PhysicsObject(40, 40);
148        vihollinen2.CanRotate = false;
149        vihollinen2.X = -0;
150        vihollinen2.Y =  300;
151        vihollinen2.Tag = "vihu";
152
153        FollowerBrain seuraajanAivot2 = new FollowerBrain(hahmo);
154
155
156        vihollinen2.Brain = seuraajanAivot2;
157
158        seuraajanAivot2.Speed = 80;
159        seuraajanAivot2.DistanceFar = 6000;
160        seuraajanAivot2.DistanceClose = 40;
161        seuraajanAivot2.StopWhenTargetClose = true;
162
163
164        seuraajanAivot2.TargetClose += KunPaaseeLahelle;
165
166        Add(vihollinen2);
167     //..........................................................................
168        PhysicsObject vihollinen3 = new PhysicsObject(40, 40);
169        vihollinen3.CanRotate = false;
170        vihollinen3.X = 300;
171        vihollinen3.Y = -200;
172        vihollinen3.Tag = "vihu";
173
174        FollowerBrain seuraajanAivot3 = new FollowerBrain(hahmo);
175
176
177        vihollinen3.Brain = seuraajanAivot3;
178
179        seuraajanAivot3.Speed = 80;
180        seuraajanAivot3.DistanceFar = 6000;
181        seuraajanAivot3.DistanceClose = 40;
182        seuraajanAivot3.StopWhenTargetClose = true;
183
184
185        seuraajanAivot3.TargetClose += KunPaaseeLahelle;
186
187        Add(vihollinen3);
188
189    }
190    void Luopistelaskuri()
191    {
192       pisteLaskuri = new IntMeter(0);
193     
194       Label pisteNaytto = new Label();
195       pisteNaytto.X = Screen.Left + 100;
196       pisteNaytto.Y = Screen.Top - 100;
197       pisteNaytto.TextColor = Color.White;
198       pisteNaytto.Color = Color.Black;
199     
200       pisteNaytto.BindTo(pisteLaskuri);
201       Add(pisteNaytto);
202     
203       if (Equals("vihu")) 
204       {
205           pisteLaskuri.Value += 1;
206       }
207       
208    }
209
210    void LuoKentta()
211    {
212
213
214        PhysicsObject ylareuna = Level.CreateTopBorder(0.0, true);
215        PhysicsObject alareuna = Level.CreateBottomBorder(0.0, true);
216        PhysicsObject vasenreuna = Level.CreateLeftBorder(0.0, true);
217        PhysicsObject oikeareuna = Level.CreateRightBorder(0.0, true);
218        //Level.CreateBorders(1.0, true);
219
220        Level.Background.Color = Color.Aqua;
221        Camera.Follow(hahmo);
222        Camera.Zoom(2.0);
223
224
225    }
226   
227    void Ammusosui(PhysicsObject ammus, PhysicsObject kohde)
228    {
229        ammus.Destroy();
230        if (kohde.Tag.Equals("vihu"))
231        {
232            kohde.Destroy();
233        }
234       
235    }
236
237    void Ammuaseella(AssaultRifle ase)
238    {
239        PhysicsObject ammus = ase.Shoot();
240
241        if (ammus != null)
242        {
243            ammus.Size *= 0.5;
244
245            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
246        }
247    }
248    void KunPaaseeLahelle()
249    {
250        hahmo.Destroy();
251       
252    }
253    void KavelytaPelaajaa(Vector suunta)
254    {
255        hahmo.Velocity = suunta;
256        if (suunta.X < 0)
257        {
258            hahmonase.Angle = Angle.FromDegrees(180.0);
259            hahmo.Image = hahmonkuvavasemmalle; hahmo.Animation = new Animation(hahmo2Kavely);
260        }
261        if (suunta.X > 0)
262        {
263            hahmonase.Angle = Angle.FromDegrees(0.0);
264            hahmo.Image = hahmonkuvaoikealle;
265        }
266        if (suunta.Y > 0)
267        {
268            hahmonase.Angle = Angle.FromDegrees(90.0);
269            hahmo.Image = hahmonkuvatakaa;
270
271        }
272        if (suunta.Y < 0)
273        {
274            hahmonase.Angle = Angle.FromDegrees(270.0);
275            hahmo.Image = hahmonkuva;
276        }
277
278       
279       
280           
281       
282
283    }
284}
Note: See TracBrowser for help on using the repository browser.