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

Revision 8757, 7.7 KB checked in by npo17_10, 2 years ago (diff)

uusi timer

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