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

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