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

Revision 8701, 5.6 KB checked in by npo17_8, 2 years ago (diff)

jes

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    IntMeter spaceship1Terveys;
14    IntMeter spaceship2Terveys;
15    AssaultRifle ufonAse;
16
17    public override void Begin()
18    {
19
20        Level.Width = Screen.Width;
21        Level.Height = Screen.Height;
22        asteroidi(345.0, -98.0);
23        asteroidi(-450.0, 100.0);
24        Pieniasteroidi(-165, -234);
25        Pieniasteroidi(445, 234);
26        Spaceship1(-150.0, 0.0);
27        Spaceship2(150.0, 0.0);
28        Liikkumiskomennot();
29        Ufo(450, -450);
30        Ufo(-450, 450);
31        aurinko();
32        maapallo();
33
34
35
36        Level.CreateBorders(1.0, false); 
37           
38        Level.Background.Image = LoadImage("space xd");
39
40        MediaPlayer.Play("spacemusic");
41
42
43
44        // TODO: Kirjoita ohjelmakoodisi tähän
45
46        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
47        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
48    }
49
50    void aurinko()
51    {
52        PhysicsObject aurinko = PhysicsObject.CreateStaticObject (200.0, 200.0, Shape.Circle);
53        aurinko.X = 870;
54        aurinko.Y = 500;
55        aurinko.Image = LoadImage("aurinko");
56        aurinko.Tag = "pahis";
57        Add(aurinko);
58    }
59
60
61
62
63    void asteroidi(double X, double Y)
64    {
65        PhysicsObject asteroidi = new PhysicsObject(260.0, 200.0, Shape.Circle);
66        Vector impulssi = new Vector(200.0, 0.0);
67        asteroidi.Hit(impulssi);
68        asteroidi.Image = LoadImage("joo");
69        asteroidi.X = X;
70        asteroidi.Y = Y;
71        asteroidi.Tag = "pahis";
72        Add(asteroidi);
73       
74    }
75
76    void maapallo()
77    {
78        PhysicsObject maapallo = PhysicsObject.CreateStaticObject(100.0, 100.0, Shape.Circle);
79        maapallo.Image = LoadImage("nonii maapallo");
80        Add(maapallo);
81    }
82
83
84
85    void Pieniasteroidi(double X, double Y)
86    {
87        PhysicsObject pieniasteroidi = new PhysicsObject(140.0, 100.0, Shape.Circle);
88        pieniasteroidi.X = X;
89        pieniasteroidi.Y = Y;
90        pieniasteroidi.Image = LoadImage("miniasteroid");
91        pieniasteroidi.Tag = "pahis";
92        Add(pieniasteroidi);
93
94    }
95
96    void Ufo(double X, double Y)
97    {
98        PhysicsObject ufo = new PhysicsObject(60.0, 40.0);
99        ufo.X = X;
100        ufo.Y = Y;
101        ufo.Tag = "pahis";
102        ufo.Image = LoadImage("munufo");
103        Add(ufo);
104        ufonAse = new AssaultRifle(30, 10);
105        ufonAse.Ammo.Value = 1000;
106        ufonAse.ProjectileCollision = AmmusOsui;
107        ufonAse.FireRate = 5.0;
108        ufonAse.Shoot();
109        ufo.Add(ufonAse);
110    }
111
112
113
114    void Spaceship1(double X, double Y)
115    {
116        spaceship1 = new Spaceship(50.0, 50.0);
117        spaceship1.Image = LoadImage("#spaceship");
118        spaceship1.X = X;
119        spaceship1.Y = Y;
120        AddCollisionHandler(spaceship1, Spaceship1Tormasi);
121        spaceship1.Tag = "Arwing";
122        spaceship1Terveys = new IntMeter(3);
123        Add(spaceship1);
124    }
125
126    void Spaceship2(double X, double Y)
127    {
128        spaceship2 = new Spaceship(50.0, 50.0);
129        spaceship2.X = X;
130        spaceship2.Y = X;
131        spaceship2.Image = LoadImage("spaceship 2t");
132        spaceship2.Tag = "Phantom Falcon";
133        AddCollisionHandler(spaceship2, Spaceship2Tormasi);
134        spaceship2Terveys = new IntMeter(3);
135        Add(spaceship2);
136    }
137    void Liikkumiskomennot()
138    {
139        Keyboard.Listen(Key.Left, ButtonState.Down, Liikutaspaceship2, null, new Vector(-100, 0));
140        Keyboard.Listen(Key.Right, ButtonState.Down, Liikutaspaceship2, null, new Vector(100, 0));
141        Keyboard.Listen(Key.Up, ButtonState.Down, Liikutaspaceship2, null, new Vector(0, 100));
142        Keyboard.Listen(Key.Down, ButtonState.Down, Liikutaspaceship2, null, new Vector(0, -100));
143
144        Keyboard.Listen(Key.A, ButtonState.Down, Liikutaspaceship1, null, new Vector(-100, 0));
145        Keyboard.Listen(Key.D, ButtonState.Down, Liikutaspaceship1, null, new Vector(100, 0));
146        Keyboard.Listen(Key.W, ButtonState.Down, Liikutaspaceship1, null, new Vector(0, 100));
147        Keyboard.Listen(Key.S, ButtonState.Down, Liikutaspaceship1, null, new Vector(0, -100));
148    }
149    void Liikutaspaceship2(Vector vektori)
150    {
151        spaceship2.Push(vektori);
152
153    }
154    void Liikutaspaceship1(Vector vektori)
155    {
156        spaceship1.Push(vektori);
157     }
158
159
160    void Spaceship1Tormasi(PhysicsObject tormaaja, PhysicsObject kohde)
161    {
162        if (kohde.Tag.Equals("pahis"))
163        spaceship1Terveys.Value --;
164
165        if (spaceship1Terveys.Value <= 0)
166            spaceship1.Destroy();
167     
168       
169    }
170    void Spaceship2Tormasi(PhysicsObject tormaaja, PhysicsObject kohde)
171    {
172        if (kohde.Tag.Equals("pahis"))
173            spaceship2Terveys.Value--;
174
175        if (spaceship2Terveys.Value <= 0)
176            spaceship2.Destroy();
177       
178    }
179    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
180    {
181        Spaceship alus = (Spaceship)kohde;
182        alus.ElamaLaskuri.Value--;
183
184    }
185     
186
187
188
189
190
191
192}
193class Spaceship : PhysicsObject
194{
195    private IntMeter elamaLaskuri = new IntMeter(3, 0, 3);
196    public IntMeter ElamaLaskuri { get { return elamaLaskuri; } }
197
198    public Spaceship(double leveys, double korkeus)
199        : base(leveys, korkeus)
200    {
201        elamaLaskuri.LowerLimit += delegate { this.Destroy(); };
202    }
203}
Note: See TracBrowser for help on using the repository browser.