source: 2017/24/AaroM/Asteroids/Asteroids/Asteroids/Asteroids.cs @ 8723

Revision 8723, 7.4 KB checked in by npo17_8, 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 Asteroids : PhysicsGame
10{
11    Spaceship spaceship2;
12    Spaceship spaceship1;
13    Spaceship spaceship3;
14    IntMeter spaceship1Terveys;
15    IntMeter spaceship2Terveys;
16    IntMeter spaceship3Terveys;
17    AssaultRifle ufonAse;
18
19    public override void Begin()
20    {
21
22        Level.Width = Screen.Width;
23        Level.Height = Screen.Height;
24        asteroidi(345.0, -98.0);
25        asteroidi(-450.0, 100.0);
26        Pieniasteroidi(-165, -234);
27        Pieniasteroidi(445, 234);
28        Pieniasteroidi(500, 400);
29        Spaceship1(-150.0, 0.0);
30        Spaceship2(150.0, 0.0);
31        Spaceship3(-150.0, -150);
32        Liikkumiskomennot();
33        Ufo(450, -450);
34        Ufo(-450, 450);
35        aurinko();
36        maapallo();
37
38
39
40        Level.CreateBorders(1.0, false); 
41           
42        Level.Background.Image = LoadImage("space xd");
43
44        MediaPlayer.Play("spacemusic");
45
46
47
48        // TODO: Kirjoita ohjelmakoodisi tähän
49
50        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
51        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
52    }
53
54    void aurinko()
55    {
56        PhysicsObject aurinko = PhysicsObject.CreateStaticObject (200.0, 200.0, Shape.Circle);
57        aurinko.X = 870;
58        aurinko.Y = 500;
59        aurinko.Image = LoadImage("aurinko");
60        aurinko.Tag = "pahis";
61        Add(aurinko);
62    }
63
64
65
66
67    void asteroidi(double X, double Y)
68    {
69        PhysicsObject asteroidi = new PhysicsObject(260.0, 200.0, Shape.Circle);
70        Vector impulssi = new Vector(200.0, 0.0);
71        asteroidi.Hit(impulssi);
72        asteroidi.Image = LoadImage("joo");
73        asteroidi.X = X;
74        asteroidi.Y = Y;
75        asteroidi.Tag = "pahis";
76        Add(asteroidi);
77       
78    }
79
80    void maapallo()
81    {
82        PhysicsObject maapallo = PhysicsObject.CreateStaticObject(100.0, 100.0, Shape.Circle);
83        maapallo.Image = LoadImage("nonii maapallo");
84        Add(maapallo);
85    }
86
87
88
89    void Pieniasteroidi(double X, double Y)
90    {
91        PhysicsObject pieniasteroidi = new PhysicsObject(140.0, 100.0, Shape.Circle);
92        pieniasteroidi.X = X;
93        pieniasteroidi.Y = Y;
94        pieniasteroidi.Image = LoadImage("miniasteroid");
95        pieniasteroidi.Tag = "pahis";
96        Add(pieniasteroidi);
97
98    }
99
100    void Ufo(double X, double Y)
101    {
102        PhysicsObject ufo = new PhysicsObject(60.0, 40.0);
103        ufo.X = X;
104        ufo.Y = Y;
105        ufo.Tag = "pahis";
106        ufo.Image = LoadImage("munufo");
107        Add(ufo);
108        ufonAse = new AssaultRifle(60, 20);
109        ufonAse.Ammo.Value = 1000;
110        ufonAse.ProjectileCollision = AmmusOsui;
111        ufonAse.FireRate = 5.0;
112        ufonAse.IsVisible = false;
113        Timer ajastin = new Timer();
114        ajastin.Interval = 1.0;
115        ajastin.Timeout += Ammu;
116        ajastin.Start(); 
117        ufo.Add(ufonAse);
118    }
119
120    void Ammu()
121    {
122        PhysicsObject panos = ufonAse.Shoot();
123
124        if (panos != null)
125        {
126            panos.Image = LoadImage("laser");
127            panos.Size = new Vector(20, 20);
128            panos.MaximumLifetime = new TimeSpan(0, 0, 10);
129        }
130    }
131
132
133
134    void Spaceship1(double X, double Y)
135    {
136        spaceship1 = new Spaceship(50.0, 50.0);
137        spaceship1.Image = LoadImage("#spaceship");
138        spaceship1.X = X;
139        spaceship1.Y = Y;
140        AddCollisionHandler(spaceship1, Spaceship1Tormasi);
141        spaceship1.Tag = "Arwing";
142        spaceship1Terveys = new IntMeter(3);
143        Add(spaceship1);
144    }
145
146    void Spaceship2(double X, double Y)
147    {
148        spaceship2 = new Spaceship(50.0, 50.0);
149        spaceship2.X = X;
150        spaceship2.Y = X;
151        spaceship2.Image = LoadImage("spaceship 2t");
152        spaceship2.Tag = "Phantom Falcon";
153        AddCollisionHandler(spaceship2, Spaceship2Tormasi);
154        spaceship2Terveys = new IntMeter(3);
155        Add(spaceship2);
156    }
157
158
159    void Spaceship3(double X, double Y)
160    {
161        spaceship3 = new Spaceship(50.0, 50.0);
162        spaceship3.X = X;
163        spaceship3.Y = X;
164        spaceship3.Image = LoadImage("spaceship 3");
165        spaceship3.Tag = "The Bandit";
166        AddCollisionHandler(spaceship3, Spaceship3Tormasi);
167        spaceship3Terveys = new IntMeter(3);
168        Add(spaceship3);
169
170    }
171
172
173
174    void Liikkumiskomennot()
175    {
176        Keyboard.Listen(Key.Left, ButtonState.Down, Liikutaspaceship2, null, new Vector(-100, 0));
177        Keyboard.Listen(Key.Right, ButtonState.Down, Liikutaspaceship2, null, new Vector(100, 0));
178        Keyboard.Listen(Key.Up, ButtonState.Down, Liikutaspaceship2, null, new Vector(0, 100));
179        Keyboard.Listen(Key.Down, ButtonState.Down, Liikutaspaceship2, null, new Vector(0, -100));
180
181        Keyboard.Listen(Key.A, ButtonState.Down, Liikutaspaceship1, null, new Vector(-100, 0));
182        Keyboard.Listen(Key.D, ButtonState.Down, Liikutaspaceship1, null, new Vector(100, 0));
183        Keyboard.Listen(Key.W, ButtonState.Down, Liikutaspaceship1, null, new Vector(0, 100));
184        Keyboard.Listen(Key.S, ButtonState.Down, Liikutaspaceship1, null, new Vector(0, -100));
185
186        Keyboard.Listen(Key.H, ButtonState.Down, Liikutaspaceship3, null, new Vector(-100, 0));
187        Keyboard.Listen(Key.K, ButtonState.Down, Liikutaspaceship3, null, new Vector(100, 0));
188        Keyboard.Listen(Key.U, ButtonState.Down, Liikutaspaceship3, null, new Vector(0, 100));
189        Keyboard.Listen(Key.J, ButtonState.Down, Liikutaspaceship3, null, new Vector(0, -100));
190    }
191    void Liikutaspaceship2(Vector vektori)
192    {
193        spaceship2.Push(vektori);
194
195    }
196    void Liikutaspaceship1(Vector vektori)
197    {
198        spaceship1.Push(vektori);
199     }
200
201    void Liikutaspaceship3(Vector vektori)
202    {
203        spaceship3.Push(vektori);
204    }
205
206
207
208    void Spaceship1Tormasi(PhysicsObject tormaaja, PhysicsObject kohde)
209    {
210        if (kohde.Tag.Equals("pahis"))
211        spaceship1Terveys.Value --;
212
213        if (spaceship1Terveys.Value <= 0)
214            spaceship1.Destroy();
215     
216       
217    }
218    void Spaceship2Tormasi(PhysicsObject tormaaja, PhysicsObject kohde)
219    {
220        if (kohde.Tag.Equals("pahis"))
221            spaceship2Terveys.Value--;
222
223        if (spaceship2Terveys.Value <= 0)
224            spaceship2.Destroy();
225       
226    }
227
228    void Spaceship3Tormasi(PhysicsObject tormaaja, PhysicsObject kohde)
229    {
230        if (kohde.Tag.Equals("pahis"))
231            spaceship3Terveys.Value--;
232
233        if (spaceship3Terveys.Value <= 0)
234            spaceship3.Destroy();
235    }
236
237
238
239
240        void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
241    {
242        if (kohde.Tag == "Phantom Falcon" || kohde.Tag == "Arwing" || kohde.Tag == "The Bandit")
243        {
244            Spaceship alus = (Spaceship)kohde;
245            alus.ElamaLaskuri.Value--;
246        }
247
248        }
249     
250
251
252
253
254
255
256}
257class Spaceship : PhysicsObject
258{
259    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
260    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
261
262    public Spaceship(double leveys, double korkeus)
263        : base(leveys, korkeus)
264    {
265        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
266    }
267}
Note: See TracBrowser for help on using the repository browser.