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

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