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

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