source: 2010/30/samipunn/Misle Launch/Peli.cs @ 1361

Revision 1361, 4.1 KB checked in by samipunn, 13 years ago (diff)

Mislelaunch, raketit lentää.

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7{
8
9
10    PhysicsObject ohjus;
11    PhysicsObject ohjus2;
12    double kaantyyOikealle = 5;
13    double kaantyyVasemmalle = -5;
14    protected override void Begin()
15    {
16        LuoReunat();
17        Camera.ZoomToLevel();
18
19        ohjus = new PhysicsObject(10, 40);
20        ohjus.Shape = Shapes.Rectangle;
21        ohjus.X = -100;
22        ohjus.Y = -0;
23        AddCollisionHandler(ohjus, Tormays);
24        Add(ohjus);
25       
26
27        ohjus2 = new PhysicsObject(10, 40);
28        ohjus2.Shape = Shapes.Rectangle;
29        ohjus2.X = 100;
30        ohjus2.Y = 0;
31        AddCollisionHandler(ohjus2, Tormays2); 
32        Add(ohjus2);
33        AsetaOhjaimet();
34
35        Painovoima();
36        Ilmanvastus();
37    }
38    void AsetaOhjaimet()
39    {
40        Keyboard.Listen(Key.Z, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Vasemmalle", ohjus, kaantyyVasemmalle);
41        Keyboard.Listen(Key.Z, ButtonState.Released, OhjusKaantyy, null, ohjus,0.0);
42        Keyboard.Listen(Key.A, ButtonState.Down, OhjusKaantyy, "Kaanna Ohjusta Oikealle", ohjus, kaantyyOikealle);
43        Keyboard.Listen(Key.A, ButtonState.Released, OhjusKaantyy, null, ohjus,0.0);
44
45        Keyboard.Listen(Key.Up, ButtonState.Down, Ohjus2Kaantyy, "Kaanna Ohjusta2 Vasemmalle", ohjus2, kaantyyVasemmalle);
46        Keyboard.Listen(Key.Up, ButtonState.Released, Ohjus2Kaantyy, null, ohjus2, 0.0);
47        Keyboard.Listen(Key.Down, ButtonState.Down, Ohjus2Kaantyy, "Kaanna Ohjusta2 Oikealle", ohjus2, kaantyyOikealle);
48        Keyboard.Listen(Key.Down, ButtonState.Released, Ohjus2Kaantyy, null, ohjus2, 0.0);
49
50        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
51        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
52
53    }
54    void OhjusKaantyy(PhysicsObject ohjus, double nopeus)
55    {
56        Angle valiaik = ohjus.Angle;
57        valiaik.Degree += nopeus;
58        ohjus.Angle = valiaik;
59    }
60
61    void Ohjus2Kaantyy(PhysicsObject ohjus2, double nopeus)
62    {
63        Angle valiaik = ohjus2.Angle;
64        valiaik.Degree += nopeus;
65        ohjus2.Angle = valiaik;
66    }
67    void Paivitys()
68    {
69    ohjus.Push(Vector.FromLengthAndAngle(1500, ohjus.Angle + Angle.RightAngle));
70    ohjus2.Push(Vector.FromLengthAndAngle(1500, ohjus2.Angle + Angle.RightAngle));
71
72    }
73
74    void Painovoima()
75    {
76        Gravity = new Vector(0.0, -800.0);
77
78    }
79
80    void Ilmanvastus()
81    {
82       ohjus.LinearDamping = 0.9;
83       ohjus2.LinearDamping = 0.9;
84    }
85    protected override void Update(Time time)
86    {
87    Paivitys();
88    base.Update(time);
89    }
90
91    void LuoReunat()
92    {
93        Level.CreateBottomBorder();
94        Level.CreateTopBorder();
95    }
96
97    void Tormays(PhysicsObject ohjus, PhysicsObject kohde)
98    {
99        ohjus.Destroy();
100        Explosion rajahdys = new Explosion(60);
101        rajahdys.Position = ohjus.Position;
102        rajahdys.Speed = 300.0;
103        rajahdys.Force = 90;       
104        Add(rajahdys);
105       
106
107    }
108
109    void Tormays2(PhysicsObject ohjus, PhysicsObject kohde)
110    {
111        ohjus2.Destroy(); 
112        Explosion rajahdys = new Explosion(60);
113        rajahdys.Position = ohjus2.Position;
114        rajahdys.Speed = 300.0;
115        rajahdys.Force = 90;
116        Add(rajahdys);
117        }
118
119    DoubleMeter alaspainLaskuri;
120
121void LuoAikaLaskuri()
122{
123    alaspainLaskuri = new DoubleMeter(30);
124   
125    Timer aikaLaskuri = new Timer();
126    aikaLaskuri.Interval = 0.1;
127    aikaLaskuri.Trigger += LaskeAlaspain;
128    Add(aikaLaskuri);
129    aikaLaskuri.Start();
130
131    Label aikaNaytto = new Label();
132    aikaNaytto.TextColor = Color.White;
133    aikaNaytto.DecimalPlaces = 1;
134    aikaNaytto.BindTo(alaspainLaskuri);
135    Add(aikaNaytto);
136}
137
138void LaskeAlaspain(Timer timer)
139{
140    alaspainLaskuri.Value -= 0.1;
141
142    if (alaspainLaskuri.Value <= 0)
143    {
144        MessageDisplay.Add("Aika loppui...");
145        timer.Stop();
146       
147        // täydennä mitä tapahtuu, kun aika loppuu
148    }
149}
150
151
152}
153
Note: See TracBrowser for help on using the repository browser.