source: 2017/27/MikaelL/Avaruuspeli/Avaruuspeli/Avaruuspeli/Avaruuspeli.cs @ 9884

Revision 9454, 5.1 KB checked in by rikavila, 22 months ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Avaruuspeli : PhysicsGame
10{ Image avaruusaluskuva = LoadImage("avaruusalus");
11    Image kivenKuva = LoadImage("kivi");
12    Image taustakuva = LoadImage("taustakuva");
13    Timer aikaLaskuri;
14    EasyHighScore topLista = new EasyHighScore();
15
16    PhysicsObject pelaaja1;
17    PhysicsObject pelaaja2;
18    PlasmaCannon plasmaTykki;
19    PlasmaCannon plasmaTykki2;
20
21    Image aliennKuva = LoadImage("kuvaalienalus");
22
23    public override void Begin()
24    {
25        LuoAlien();
26        // TODO: Kirjoita ohjelmakoodisi tähän
27        Level.Width = Window.Width;
28        Level.Height = Window.Height;
29        Level.Background.Image = taustakuva;
30
31        Level.Background.FitToLevel();
32        Level.CreateBorders();
33
34        pelaaja1 = LuoAvaruusalus(100, 100);
35        pelaaja2 = LuoAvaruusalus(10, 10);
36
37
38        plasmaTykki = new PlasmaCannon(20, 5);
39        plasmaTykki.ProjectileCollision = AmmusOsui;
40        plasmaTykki.FireRate = 5.0;
41
42        Keyboard.Listen(Key.Space, ButtonState.Down, AmmuAseella, "Ammu", pelaaja1, plasmaTykki);
43
44
45
46
47
48        pelaaja1.Add(plasmaTykki);
49
50
51
52        plasmaTykki2 = new PlasmaCannon(20, 5);
53        plasmaTykki2.ProjectileCollision = AmmusOsui;
54        plasmaTykki2.FireRate = 5.0;
55
56        Keyboard.Listen(Key.D3, ButtonState.Down, AmmuAseella, "Ammu", pelaaja2, plasmaTykki2);
57
58
59
60
61
62        pelaaja2.Add(plasmaTykki2);
63
64
65
66
67
68
69
70
71
72
73        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
74        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
75
76        Keyboard.Listen(Key.Left, ButtonState.Down, KaannaKulmaa, null, pelaaja1, 5.0);
77        Keyboard.Listen(Key.Right, ButtonState.Down, KaannaKulmaa, null,pelaaja1, -5.0);
78        Keyboard.Listen(Key.Up, ButtonState.Down,Kaasuta , null, pelaaja1, 1000.0);
79        //Keyboard.Listen(Key.Down, ButtonState.Down,LiikutaPelaajaa, null,pelaaja1, new Vector(0, -1000));
80
81        Keyboard.Listen(Key.A, ButtonState.Down, KaannaKulmaa, null, pelaaja2, 5.0);
82        Keyboard.Listen(Key.D, ButtonState.Down, KaannaKulmaa, null, pelaaja2, -5.0);
83        Keyboard.Listen(Key.W, ButtonState.Down, Kaasuta, null, pelaaja2, 1000.0);
84
85
86
87
88
89
90
91
92
93
94        LuoKivi(100, 50);
95        LuoKivi(50, 100);
96        LuoKivi(29, 58);
97        LuoKivi(50, 79);
98        LuoKivi(600, 600);
99        LuoKivi(600, 200);
100        LuoKivi(400, 129);
101        LuoKivi(50, 60);
102
103
104
105        LuoAikaLaskuri();
106
107    }
108
109    void AmmuAseella(PhysicsObject pelaaja, Weapon plasmaTykki)
110    {
111        PhysicsObject ammus = plasmaTykki.Shoot();
112
113        if (ammus != null)
114        {
115            //ammus.Size *= 3;
116            //ammus.Image = ...
117            //ammus.MaximumLifetime = TimeSpan.FromSeconds(2.0);
118        }
119    }
120    void LuoAikaLaskuri()
121    {
122         aikaLaskuri = new Timer();
123        aikaLaskuri.Start();
124
125        Label aikaNaytto = new Label();
126        aikaNaytto.TextColor = Color.Black;
127        aikaNaytto.Color = Color.HotPink;
128        aikaNaytto.DecimalPlaces = 1;
129        aikaNaytto.Y = Screen.Top - 100;
130        aikaNaytto.X = 0;
131        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
132        Add(aikaNaytto,3);
133    }
134
135
136
137
138
139
140
141
142
143    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
144    {
145        if (kohde.Tag.Equals("alus"))
146        {
147            Explosion rajahdys = new Explosion(10000000000000000000);
148            rajahdys.Position = kohde.Position;
149            Add(rajahdys);
150            aikaLaskuri.Stop();
151            kohde.Destroy();
152            topLista.EnterAndShow(aikaLaskuri.SecondCounter.Value);
153            //topLista.HighScoreWindow.Closed += AloitaPeli;
154
155        }
156       
157
158    }
159
160
161
162
163    void LiikutaPelaajaa(PhysicsObject pelaaja, Vector vektori)
164    {
165        pelaaja.Push(vektori);
166    }
167
168    void KaannaKulmaa(PhysicsObject pelaaja, double aste)
169    {
170        pelaaja.Angle += Angle.FromDegrees(aste);
171    }
172
173    void Kaasuta(PhysicsObject pelaaja, double kaasunMaara)
174    {
175        pelaaja.Push(pelaaja.Angle.GetVector() * kaasunMaara);
176    }
177
178
179    void LuoKivi(double x, double y)
180    {
181
182        PhysicsObject kivi = new PhysicsObject(100, 100);
183        kivi.Shape = Shape.Rectangle;
184        Add(kivi);
185        kivi.Image = kivenKuva;
186        kivi.X = x;
187        kivi.Y = y;
188
189   
190
191    }
192
193    PhysicsObject LuoAvaruusalus(double x, double y)
194    {
195        PhysicsObject avaruusalus = new PhysicsObject(40, 20);
196        avaruusalus.Image = avaruusaluskuva;
197        avaruusalus.Shape = Shape.Rectangle;
198        Add(avaruusalus);
199        avaruusalus.X = x;
200        avaruusalus.Y = y;
201        avaruusalus.Tag = "alus";
202        avaruusalus.AngularDamping = 0.1;
203
204        return avaruusalus;
205    }
206   void LuoAlien()
207    {
208
209        PhysicsObject alien = new PhysicsObject(40, 20);
210        alien.Shape = Shape.Rectangle;
211        Add(alien);
212
213        alien.Image = aliennKuva;
214
215    }
216
217
218
219
220
221
222}
Note: See TracBrowser for help on using the repository browser.