source: 2013/30/VilleF/Lentokone/Lentokone/Lentokone/Lentokone.cs @ 4650

Revision 4650, 9.2 KB checked in by viosfilp, 9 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 Lentokone : PhysicsGame
10{
11    private Animation sauruksenLento;
12    private Animation juusto;
13    private Animation miesa;
14    //IntMeter Pisteaskuri;
15    Image ukkeliPi = LoadImage("ukkeli");
16    Image pommik = LoadImage("pommi");
17    Image maisema = LoadImage("havutausta");
18    Image havusaurus = LoadImage("havusauruskuva");
19    Vector nopeusYlos = new Vector(0, 1000);
20    Vector nopeusAlas = new Vector(0, -1000);
21    PhysicsObject pelaaja;
22    PhysicsObject pommi;
23    //PhysicsObject ukkeli1;
24
25    Timer komboLaskurinAjastin;
26
27    IntMeter pisteLaskuri;
28    IntMeter KomboLaskuri;
29
30   
31    public override void Begin()
32    {
33        Label tekstikentta = new Label("Havupommitus V 0.1");
34        tekstikentta.X = Screen.Left + 105;
35        tekstikentta.Y = Screen.Top - 10;
36        Add(tekstikentta);
37        LuoPistelaskuri(); 
38        miesa = LoadAnimation("blingbling");
39        juusto = LoadAnimation("ukkeli");
40        sauruksenLento = LoadAnimation("animaatio");
41        Level.Width = 1920;
42        Level.Height = 1080;
43        Gravity = new Vector(0.0, -500);
44        //MediaPl-ayer.Play("
45        LuoKomboLaskuri();
46        LuoPelaaja();
47        LuoKentta();
48        LisaaVihollinen();
49        LisaaVihollinen();
50        pelaaja.Animation = sauruksenLento;
51        pelaaja.Animation.Start();
52        pelaaja.Animation.FPS = 3;
53        Camera.ZoomToLevel();
54        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
55        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
56        Keyboard.Listen(Key.Left, ButtonState.Down,
57        HidastaPelaajaa, null);
58        Keyboard.Listen(Key.Right, ButtonState.Down,
59        LiikutaPelaajaa, null, 1);
60        Keyboard.Listen(Key.Up, ButtonState.Down,
61        KaannaPelaajaa, null, 1.0);
62        Keyboard.Listen(Key.Up, ButtonState.Released,
63        KaannaPelaajaa, null, 0.0);
64        Keyboard.Listen(Key.Down, ButtonState.Down,
65        KaannaPelaajaa, null, -1.0);
66        Keyboard.Listen(Key.Down, ButtonState.Released,
67        KaannaPelaajaa, null, 0.0);
68        Keyboard.Listen(Key.Space, ButtonState.Released, TiputaPommi, "Ammu");
69        Keyboard.Listen(Key.R, ButtonState.Released, LuoPelaaja, "Ammu");
70        Keyboard.Listen(Key.V, ButtonState.Released, LisaaVihollinen, "Ammu");
71        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
72    }
73    void LuoPistelaskuri()
74    {
75        pisteLaskuri = new IntMeter(0);
76
77        Label pisteNaytto = new Label();
78        pisteNaytto.X = Screen.Right - 100;
79        pisteNaytto.Y = Screen.Top - 100;
80        pisteNaytto.TextColor = Color.Green;
81        //pisteNaytto.Color = Color.White;
82        pisteNaytto.IntFormatString = "Pisteitä: {0:D1}";
83        pisteNaytto.BindTo(pisteLaskuri);
84        Add(pisteNaytto);
85    }
86    void LuoKomboLaskuri()
87    {
88        KomboLaskuri = new IntMeter(0);
89
90        Label komboNaytto = new Label();
91        komboNaytto.X = Screen.Right -200;
92        komboNaytto.Y = Screen.Top -200 ;
93        komboNaytto.TextColor = Color.Green;
94        //pisteNaytto.Color = Color.White;
95        komboNaytto.IntFormatString = "COMBO: {0:D1}";
96        komboNaytto.BindTo(KomboLaskuri);
97        Add(komboNaytto);
98
99        komboLaskurinAjastin = new Timer();
100        komboLaskurinAjastin.Interval = 5;
101        komboLaskurinAjastin.Timeout += delegate { KomboLaskuri.Reset(); };
102        komboLaskurinAjastin.Start();
103
104        KomboLaskuri.Changed += delegate { Kombot(); };
105
106
107
108
109    }
110    void Kombot()
111    {
112        if (KomboLaskuri.Value == 3) { Label tekstikentta = new Label("kombo");
113        Add(tekstikentta);
114         //   PommiOsuu(100);
115
116        }
117
118        if (KomboLaskuri.Value > 6) { }
119
120
121    }
122
123    void LisaaVihollinen()
124    {
125        int n = 0;
126        while (n < 10)
127        {
128
129
130            double x = RandomGen.NextDouble(Level.Right, Level.Left);
131            PhysicsObject ukkeli1 = new PhysicsObject(40, 60);
132            //ukkeli1.Shape = Shape.FromImage("ukkeliP");
133            ukkeli1.Animation = RandomGen.SelectOne(juusto, miesa);
134            ukkeli1.Animation.Start();
135            ukkeli1.Animation.FPS = 5;
136            ukkeli1.Tag = "vihollinen";
137            //PhysicsObject mies = new PhysicsObject(40, 60);
138            //mies.Animation = miesa;
139            //mies.Animation.Start();
140            //mies.Animation.FPS = 4;
141            //mies.Tag = "vihollinen";
142            ukkeli1.X = x;
143            //mies.X = x;
144            ukkeli1.Y = Level.Bottom + 80;
145            //mies.Y = Level.Bottom + 80;
146
147            Add(ukkeli1);
148
149            //Add(RandomGen.SelectOne (mies, ukkeli1));
150            n++;
151
152            Timer ajastin = new Timer();
153            ajastin.Interval = RandomGen.NextDouble(0.2, 2);
154            ajastin.Timeout += delegate
155            {
156
157                ukkeli1.Velocity = new Vector(RandomGen.SelectOne(-200, 200), 0);
158            };
159            ajastin.Start();
160        }
161    }
162   
163       void TiputaPommi()
164
165    {
166
167        pommi = new PhysicsObject(50, 50);
168        //pommi.Shape = Shape.FromImage("pommik");
169        pommi.Image = pommik;
170        pommi.Position = pelaaja.Position;
171       
172        pommi.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup;
173
174
175        Add(pommi);
176       
177        AddCollisionHandler(pommi, PommiOsuu);
178    }
179   
180       void PommiOsuu(PhysicsObject pommi, PhysicsObject kohde)
181       {
182           //Int k = 0;
183
184           if(kohde.Tag.Equals("vihollinen"))
185           {
186               kohde.Destroy();
187               pisteLaskuri.Value += 1;
188               KomboLaskuri.Value += 1;
189               komboLaskurinAjastin.Reset();
190               
191           }
192           if (KomboLaskuri > 3)
193           {
194
195               Explosion e = new Explosion(6000);
196               e.Position = pommi.Position;
197               pommi.Destroy();
198               Add(e);
199               e.ShockwaveReachesObject += delegate(IPhysicsObject rKohde, Vector v) { if (rKohde.Tag.Equals("vihollinen")) rKohde.Destroy(); };
200           }
201           else
202           {
203               Explosion e = new Explosion(60);
204               e.Position = pommi.Position;
205               pommi.Destroy();
206               Add(e);
207               e.ShockwaveReachesObject += delegate(IPhysicsObject rKohde, Vector v) { if (rKohde.Tag.Equals("vihollinen")) rKohde.Destroy(); };
208               //pisteet++;}
209           }
210           
211       }
212       void Rajahdys()
213       { 
214
215       }
216
217    void KaannaPelaajaa(double kaannos)
218    {
219        pelaaja.AngularVelocity = kaannos;
220
221       
222        }
223
224
225
226    protected override void Update(Time time)
227    {
228        base.Update(time);
229        if (pelaaja != null)
230        {
231            if (pelaaja.Position.X > Level.Right) pelaaja.Position = new Vector(Level.Left, pelaaja.Position.Y);
232            if (pelaaja.Position.X < Level.Left) pelaaja.Position = new Vector(Level.Right, pelaaja.Position.Y);
233        }
234    }
235
236    void HidastaPelaajaa()
237    {
238        pelaaja.Velocity = new Vector(pelaaja.Velocity.X * 0.95, pelaaja.Velocity.Y);
239       
240    }
241
242    void PelaajaTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
243    {
244       
245    }
246    void LiikutaPelaajaa(int suunta)
247    {
248        pelaaja.Push(Vector.FromLengthAndAngle(3000*suunta, pelaaja.Angle));
249    }
250   
251   
252    void LuoKentta()
253    {
254        Level.Background.Image = maisema;
255        Level.Background.FitToLevel();
256        Surface alareuna = new Surface(Level.Width, 50, 20, 60, 60);
257        alareuna.Color = Color.Green;
258        alareuna.Bottom = Level.Bottom;
259        Add(alareuna);
260
261        PhysicsObject oikeaReuna = Level.CreateRightBorder();
262        oikeaReuna.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup;
263
264        PhysicsObject vasenReuna = Level.CreateLeftBorder();
265        vasenReuna.CollisionIgnoreGroup = pelaaja.CollisionIgnoreGroup;
266
267
268    }
269
270
271
272 
273
274   
275    void LuoPelaaja()
276    {
277        pelaaja = new PhysicsObject(100.0, 120.0);
278        pelaaja.Shape = Shape.FromImage(havusaurus);
279        pelaaja.Image = havusaurus;
280        pelaaja.LinearDamping = 0.99;
281        pelaaja.CollisionIgnoreGroup = 2;
282        //pelaaja.MirrorImage();
283        pelaaja.Animation = sauruksenLento;
284        pelaaja.Animation.Start();
285        pelaaja.Animation.FPS = 3;
286        Add(pelaaja);
287       AddCollisionHandler(pelaaja, CollisionHandler.ExplodeObject(200, true));
288       AddCollisionHandler(pelaaja,  "vihollinen", CollisionHandler.ExplodeTarget(50, true));
289        pelaaja.MaxVelocity = 600;
290       Timer ajastin = new Timer();
291       ajastin.Interval = 0.1;
292       ajastin.Timeout += KaannaKohtiMaata;
293       ajastin.Start();
294       pisteLaskuri.Value = -10;
295    }
296
297    void KaannaKohtiMaata()
298    {
299        if((pelaaja.Angle.Degrees > 70) && (pelaaja.Angle.Degrees < 110))
300            return;
301        if ((pelaaja.Angle.Degrees >= 110) || (pelaaja.Angle.Degrees <= -90))
302            pelaaja.Angle = Angle.FromDegrees(pelaaja.Angle.Degrees + 0.4);
303        else
304            pelaaja.Angle = Angle.FromDegrees(pelaaja.Angle.Degrees - 0.4);
305    }
306
307   
308}
Note: See TracBrowser for help on using the repository browser.