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

Revision 8727, 7.4 KB checked in by npo17_10, 2 years ago (diff)

vihollisten spawnerit luotu.

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