source: 2011/31/PeetuL/Palikoiden sota/Palikoiden sota/Palikoiden sota/Peli.cs @ 2552

Revision 2552, 7.1 KB checked in by peossalu, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11   
12    RandomMoverBrain SatunnaisAivot = new RandomMoverBrain();
13    Behqulo Behqulo;
14    int pahisten_lkm = 0;
15
16
17    public override void Begin()
18    {
19        MediaPlayer.Play("vs sephiroth");
20        LuoAleksikuutio();
21        LuoBehqulo();
22
23        // TODO: Kirjoita ohjelmakoodisi tähän
24
25
26
27
28        Camera.Follow(Behqulo);
29        Gravity = new Vector(0.0, 0.0);
30        Level.BackgroundColor = Color.Black;
31        Level.CreateBorders();
32
33
34
35        int i = 0;
36        while (i < 30)
37        {
38            LuoPahis();
39            // i++;
40            i = i + 1;
41
42        }
43
44        int u = 0;
45
46        while (u < 15)
47        {
48            LuoLaserpahis();
49            u = u + 1;
50        }
51        int o = 0;
52
53        /*
54        while (o < 15)
55        {
56            LuoLaserpahis2();
57            o = o + 1;
58        }
59        */
60
61        Level.CreateGround(55, 45, 7, 5);
62    }
63
64    void pahis_ampuu(PlatformCharacter pahis)
65    {
66        if (!pahis.IsDestroyed)
67        {
68            PhysicsObject Ammus = pahis.Weapon.Shoot();
69            Timer.SingleShot(1.0, Ammus.Destroy);
70        }
71    }
72
73    void LuoPahis()
74    {
75        Pahis pahis = new Pahis(10.0, 10.0);
76        pahis.X = RandomGen.NextDouble(Level.Left, Level.Right);
77        pahis.Shape = Shape.Circle;
78        pahis.Color = Color.Green;
79        // if (pahis.IsDestroyed);
80        pahis.Weapon = new AssaultRifle(20, 5);
81        pahis.Weapon.ProjectileCollision =AmmusOsuu2;
82        Vector suunta = (Behqulo.Position - pahis.Position).Normalize();
83        pahis.Angle = suunta.Angle;
84        pahisten_lkm++;
85        /*
86        Timer ajastin = new Timer();
87        ajastin.Interval = 1.0;
88        ajastin.Timeout += delegate { PahisAmpuu(pahis); };
89        ajastin.Start();*/
90        pahis.Brain = new RandomMoverBrain(1000.0);
91        Add(pahis);
92
93        Timer vihu_ammunta_ajastin = new Timer();
94        vihu_ammunta_ajastin.Interval = (1.0 + (RandomGen.NextDouble(-0.3, 0.3)));
95        vihu_ammunta_ajastin.Timeout += delegate { pahis_ampuu(pahis); };
96        vihu_ammunta_ajastin.Start();
97
98    }
99
100    void AmmusOsuu(PhysicsObject Ammus, PhysicsObject kohde)
101    {
102        if (kohde is Pahis)
103        {
104            Pahis k = (Pahis)kohde;
105            k.Hp--;
106            if (k.Hp < 1) kohde.Destroy();
107        }
108        else if (kohde is Aleksikuutio)
109        {
110            Aleksikuutio k = (Aleksikuutio)kohde;
111            k.Hp--;
112            if (k.Hp < 1) kohde.Destroy();
113        }
114        else if (kohde is Laserpahis)
115        {
116            Laserpahis k = (Laserpahis)kohde;
117            k.Hp--;
118            if (k.Hp < 1) kohde.Destroy();
119        }
120
121
122    }
123    void AmmusOsuu2(PhysicsObject Ammus2, PhysicsObject kohde2)
124    {
125
126        if (kohde2 is Behqulo)
127        {
128            Behqulo k = (Behqulo)kohde2;
129            k.Hp--;
130            if (k.Hp < 1) kohde2.Destroy();
131        }
132    }
133   
134
135
136
137    void LiikutaBehquloa(Vector Vektori)
138    {
139        Behqulo.Push(Vektori);
140    }
141
142    void Ammu()
143    {
144        Behqulo.Weapon.Shoot();
145
146
147    }
148
149
150    void LuoBehqulo()
151    {
152        Behqulo = new Behqulo(10.0, 15.0);
153        Add(Behqulo);
154        Behqulo.Shape = Shape.Rectangle;
155        Behqulo.Color = Color.Red;
156        Behqulo.Weapon = new LaserGun(20, 5);
157        Behqulo.Weapon.ProjectileCollision = AmmusOsuu;
158        Behqulo.Weapon.InfiniteAmmo = true;
159        Keyboard.Listen(Key.Right, ButtonState.Down,
160            LiikutaBehquloa, null, new Vector(10000, 0));
161        Keyboard.Listen(Key.Left, ButtonState.Down,
162            LiikutaBehquloa, null, new Vector(-10000, 0));
163        Keyboard.Listen(Key.Up, ButtonState.Down,
164            LiikutaBehquloa, null, new Vector(0, 1000));
165        Keyboard.Listen(Key.Down, ButtonState.Down,
166             LiikutaBehquloa, null, new Vector(0, -1000));
167        Keyboard.Listen(Key.Space, ButtonState.Pressed,
168            Ammu, null);
169
170
171    }
172    void LuoLaserpahis()
173    {
174        Pahis Laserpahis = new Pahis(11.0, 10.3);
175        Laserpahis.X = RandomGen.NextDouble(Level.Left, Level.Right);
176        Laserpahis.Shape = Shape.Star;
177        Laserpahis.Color = Color.Green;
178        Laserpahis.Weapon = new LaserGun(5, 5);
179        Laserpahis.Weapon.ProjectileCollision = AmmusOsuu2;
180       Laserpahis.Brain = new RandomMoverBrain(1000.0);
181        Vector suunta = (Behqulo.Position - Laserpahis.Position).Normalize();
182
183
184        Add(Laserpahis);
185        pahisten_lkm++;
186
187        Timer vihu_ammunta_ajastin = new Timer();
188        vihu_ammunta_ajastin.Interval = 1.0 + (RandomGen.NextDouble(-0.3, 0.3));
189        vihu_ammunta_ajastin.Timeout += delegate { pahis_ampuu(Laserpahis); };
190        vihu_ammunta_ajastin.Start();
191
192
193    }
194
195    void LuoAleksikuutio()
196    {
197        Aleksikuutio Aleksikuutio = new Aleksikuutio(100.0, 100.0);
198        Aleksikuutio.X = RandomGen.NextDouble(Level.Left, Level.Right);
199        Aleksikuutio.Color = Color.Violet;
200        Aleksikuutio.Weapon = new AssaultRifle(60.0, 60.0);
201        Aleksikuutio.Weapon.ProjectileCollision = AmmusOsuu2;
202        Add(Aleksikuutio);
203        Timer ajastin = new Timer();
204        ajastin.Interval = 2.0;
205        ajastin.Timeout += delegate { AleksikuutioAmpuu(Aleksikuutio); };
206        Aleksikuutio.Brain = new RandomMoverBrain();
207        ajastin.Start();
208    }
209    void LuoLaserpahis2()
210    {
211        Pahis Laserpahis2 = new Pahis(11.0, 10.3);
212        Laserpahis2.X = RandomGen.NextDouble(Level.Left, Level.Right);
213        Laserpahis2.Shape = Shape.Star;
214        Laserpahis2.Color = Color.Green;
215        Laserpahis2.Weapon = new LaserGun(5, 5);
216        Vector suunta = (Behqulo.Position - Laserpahis2.Position).Normalize();
217
218
219        Add(Laserpahis2);
220        pahisten_lkm++;
221
222        Timer vihu_ammunta_ajastin = new Timer();
223        vihu_ammunta_ajastin.Interval = 1.0;
224        vihu_ammunta_ajastin.Timeout += delegate { pahis_ampuu(Laserpahis2); };
225        vihu_ammunta_ajastin.Start();
226
227
228    }
229
230    void AleksikuutioAmpuu(PlatformCharacter Aleksikuutio)
231    {
232        PhysicsObject ammus2 = Aleksikuutio.Weapon.Shoot();
233        if (ammus2 != null)
234        {
235            ammus2.Size *= 5;
236        }
237    }
238
239
240}
241
242
243
244
245public class Pahis : PlatformCharacter
246{
247    public int Hp = 7;
248
249    public Pahis(double width, double height)
250        : base(width, height)
251    {
252
253    }
254
255}
256
257public class Aleksikuutio : PlatformCharacter
258{
259    public int Hp = 100000;
260
261    public Aleksikuutio(double width, double height)
262        : base(width, height)
263    {
264
265    }
266
267}
268
269public class Laserpahis : PlatformCharacter
270{
271    public int Hp = 10;
272
273    public Laserpahis(double width, double height)
274        : base(width, height)
275    {
276
277    }
278
279}
280public class Behqulo : PlatformCharacter
281{
282    public int Hp = 10;
283
284    public Behqulo(double width, double height)
285        : base(width, height)
286    {
287
288    }
289
290}
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
Note: See TracBrowser for help on using the repository browser.