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

Revision 8756, 7.6 KB checked in by npo17_10, 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
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
77        LuoKentta();
78        // TODO: Kirjoita ohjelmakoodisi tähän();
79
80        Keyboard.Listen(Key.Left, ButtonState.Down, KavelytaPelaajaa, null, nopeusVasemmalle);
81        Keyboard.Listen(Key.Right, ButtonState.Down, KavelytaPelaajaa, null, nopeusOikealle);
82        Keyboard.Listen(Key.Up, ButtonState.Down, KavelytaPelaajaa, null, nopeusYlos);
83        Keyboard.Listen(Key.Down, ButtonState.Down, KavelytaPelaajaa, null, nopeusAlas);
84
85        Keyboard.Listen(Key.Left, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuVasemmalle);
86        Keyboard.Listen(Key.Right, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuOikealle);
87        Keyboard.Listen(Key.Up, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuYlos);
88        Keyboard.Listen(Key.Down, ButtonState.Released, KavelytaPelaajaa, null, pysahtuuAlas);
89
90
91        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
92        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
93
94
95    }
96
97   
98   
99     
100   
101    void Ajastin()
102    {
103        Timer aikaLaskuri = new Timer();
104        aikaLaskuri.Start();
105
106        Label aikaNaytto = new Label();
107        aikaNaytto.TextColor = Color.White;
108        aikaNaytto.DecimalPlaces = 1;
109        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
110        Add(aikaNaytto);
111
112    }
113
114    void LuoVihu()
115    {
116        PhysicsObject vihollinen = new PhysicsObject(40, 40);
117        vihollinen.CanRotate = false;
118        vihollinen.X = -300;
119        vihollinen.Y = -200;
120        vihollinen.Tag = "vihu";
121
122        FollowerBrain seuraajanAivot = new FollowerBrain(hahmo);
123
124
125        vihollinen.Brain = seuraajanAivot;
126
127        seuraajanAivot.Speed = 80;
128        seuraajanAivot.DistanceFar = 6000;
129        seuraajanAivot.DistanceClose = 40;
130        seuraajanAivot.StopWhenTargetClose = true;
131
132
133        seuraajanAivot.TargetClose += KunPaaseeLahelle;
134
135        Add(vihollinen);
136     // .................................................................
137        PhysicsObject vihollinen2 = new PhysicsObject(40, 40);
138        vihollinen2.CanRotate = false;
139        vihollinen2.X = -0;
140        vihollinen2.Y =  300;
141        vihollinen2.Tag = "vihu";
142
143        FollowerBrain seuraajanAivot2 = new FollowerBrain(hahmo);
144
145
146        vihollinen2.Brain = seuraajanAivot2;
147
148        seuraajanAivot2.Speed = 80;
149        seuraajanAivot2.DistanceFar = 6000;
150        seuraajanAivot2.DistanceClose = 40;
151        seuraajanAivot2.StopWhenTargetClose = true;
152
153
154        seuraajanAivot2.TargetClose += KunPaaseeLahelle;
155
156        Add(vihollinen2);
157     //..........................................................................
158        PhysicsObject vihollinen3 = new PhysicsObject(40, 40);
159        vihollinen3.CanRotate = false;
160        vihollinen3.X = 300;
161        vihollinen3.Y = -200;
162        vihollinen3.Tag = "vihu";
163
164        FollowerBrain seuraajanAivot3 = new FollowerBrain(hahmo);
165
166
167        vihollinen3.Brain = seuraajanAivot3;
168
169        seuraajanAivot3.Speed = 80;
170        seuraajanAivot3.DistanceFar = 6000;
171        seuraajanAivot3.DistanceClose = 40;
172        seuraajanAivot3.StopWhenTargetClose = true;
173
174
175        seuraajanAivot3.TargetClose += KunPaaseeLahelle;
176
177        Add(vihollinen3);
178
179    }
180    void Luopistelaskuri()
181    {
182       pisteLaskuri = new IntMeter(0);
183     
184       Label pisteNaytto = new Label();
185       pisteNaytto.X = Screen.Left + 100;
186       pisteNaytto.Y = Screen.Top - 100;
187       pisteNaytto.TextColor = Color.White;
188       pisteNaytto.Color = Color.Black;
189     
190       pisteNaytto.BindTo(pisteLaskuri);
191       Add(pisteNaytto);
192     
193       if (Equals("vihu")) 
194       {
195           pisteLaskuri.Value += 1;
196       }
197       
198    }
199
200    void LuoKentta()
201    {
202
203
204        PhysicsObject ylareuna = Level.CreateTopBorder(0.0, true);
205        PhysicsObject alareuna = Level.CreateBottomBorder(0.0, true);
206        PhysicsObject vasenreuna = Level.CreateLeftBorder(0.0, true);
207        PhysicsObject oikeareuna = Level.CreateRightBorder(0.0, true);
208        //Level.CreateBorders(1.0, true);
209
210        Level.Background.Color = Color.Aqua;
211        Camera.Follow(hahmo);
212        Camera.Zoom(2.0);
213
214
215    }
216   
217    void Ammusosui(PhysicsObject ammus, PhysicsObject kohde)
218    {
219        ammus.Destroy();
220        if (kohde.Tag.Equals("vihu"))
221        {
222            kohde.Destroy();
223        }
224       
225    }
226
227    void Ammuaseella(AssaultRifle ase)
228    {
229        PhysicsObject ammus = ase.Shoot();
230
231        if (ammus != null)
232        {
233            ammus.Size *= 0.5;
234
235            ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
236        }
237    }
238    void KunPaaseeLahelle()
239    {
240        hahmo.Destroy();
241       
242    }
243    void KavelytaPelaajaa(Vector suunta)
244    {
245        hahmo.Velocity = suunta;
246        if (suunta.X < 0)
247        {
248            hahmonase.Angle = Angle.FromDegrees(180.0);
249            hahmo.Image = hahmonkuvavasemmalle; hahmo.Animation = new Animation(hahmo2Kavely);
250        }
251        if (suunta.X > 0)
252        {
253            hahmonase.Angle = Angle.FromDegrees(0.0);
254            hahmo.Image = hahmonkuvaoikealle;
255        }
256        if (suunta.Y > 0)
257        {
258            hahmonase.Angle = Angle.FromDegrees(90.0);
259            hahmo.Image = hahmonkuvatakaa;
260
261        }
262        if (suunta.Y < 0)
263        {
264            hahmonase.Angle = Angle.FromDegrees(270.0);
265            hahmo.Image = hahmonkuva;
266        }
267
268       
269       
270           
271       
272
273    }
274}
Note: See TracBrowser for help on using the repository browser.