source: 2014/30/MikaH/Erämaan Valloittaja/Erämaan Valloittaja/Erämaan Valloittaja/Erämaan_Valloittaja.cs @ 5676

Revision 5676, 5.7 KB checked in by mikmaral, 6 years ago (diff)

Miltei valmis

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Erämaan_Valloittaja : PhysicsGame
10{
11
12   
13    Shape kiven1muoto;
14    Image pommikuva = LoadImage("Bomb");
15    Image kivikuva1 = LoadImage("kivi1");
16    Shape puunmuoto;
17    Image puukuva = LoadImage("puu");
18    Image taustakuva = LoadImage("maisema2");
19    Shape pelaajanmuoto;
20    Image pelaajakuva = LoadImage("PlayerStandingWatchingRigh");
21    PhysicsObject Pelaaja;
22    Vector nopeusOikealle = new Vector(1000, 0);
23    Vector nopeusVasemmalle = new Vector(-1000, 0);
24    Shape kepinmuoto;
25    Image kepinkuva = LoadImage("keppi");
26
27    public override void Begin()
28    {
29        SetWindowSize(1200, 1000, false);
30
31
32
33        aloitaAlusta();
34
35
36
37
38    }
39
40    void LuoAikaLaskurikivi()
41    {
42        Timer aikaLaskurikivi = new Timer();
43        aikaLaskurikivi.Interval = 0.5;
44        aikaLaskurikivi.Timeout += delegate
45        {
46            LuoKivia();
47
48            if (aikaLaskurikivi.Interval > 0.05)
49                aikaLaskurikivi.Interval -= 0.005;
50        };
51        aikaLaskurikivi.Timeout += aikaLaskurikivi.Start;
52        aikaLaskurikivi.Start(1);
53    }
54
55
56
57
58    void LuoAikaLaskuri()
59    {
60        Timer aikaLaskuri = new Timer();
61        aikaLaskuri.Interval = 4;
62        aikaLaskuri.Timeout += ClearAll;
63        aikaLaskuri.Start(1);
64
65    }
66
67    void LuoAikaLaskurikeppi()
68    {
69        Timer aikaLaskurikeppi = new Timer();
70        aikaLaskurikeppi.Interval = 1;
71        aikaLaskurikeppi.Timeout += LuoKeppeja;
72        aikaLaskurikeppi.Timeout += aikaLaskurikeppi.Start;
73        aikaLaskurikeppi.Start(1);
74    }
75
76
77
78
79
80
81
82
83
84    void aloitaAlusta()
85    {
86        ClearAll();
87        //LuoAikaLaskuri();
88
89        Level.Width = 5000;
90        //Level.Height = 1000;
91
92        Level.CreateLeftBorder();
93        Level.CreateRightBorder();
94       
95
96
97
98        LuoAikaLaskurikivi();
99        LuoAikaLaskurikeppi();
100        puunmuoto = Shape.FromImage(puukuva);
101
102
103        GameObject taustaPilvet = new GameObject(Screen.Width, Screen.Height);
104        taustaPilvet.Image = taustakuva;
105        Add(taustaPilvet, -3);
106        Layers[-3].RelativeTransition = new Vector(0.0, 0.0);
107
108
109
110        //Level.Background.Image = taustakuva;
111        //Level.Background.FitToLevel();
112
113
114
115
116        Surface alareuna = Surface.CreateBottom(Level, 2010, 2000, 50, 1);
117        Add(alareuna);
118
119        kepinmuoto = Shape.FromImage(kepinkuva);
120        kiven1muoto = Shape.FromImage(kivikuva1);
121
122        pelaajanmuoto = Shape.FromImage(pelaajakuva);
123        LuoKentta();
124        AsetaOhjaimet();
125        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
126
127
128
129
130
131    }
132
133    void tuhooPelaaja(PhysicsObject Pelaaja, PhysicsObject keppi)
134    {
135        Pelaaja.Destroy();
136
137        Timer.SingleShot(1, aloitaAlusta);
138    }
139    void LuoKivia()
140    {
141
142        int kivix = RandomGen.NextInt(-5000, 5000);
143        LuoKivi1(40, 40, kivix, 1000);
144
145
146    }
147
148    void LuoKeppeja()
149    {
150        int keppix = RandomGen.NextInt(-5000, 5000);
151        LuoKeppi(keppix, 1000);
152    }
153
154
155
156    void LuoKentta()
157    {
158
159        Gravity = new Vector(0, -400);
160
161
162        Keppilaskuri();
163
164        LuoPelaaja();
165
166    }
167
168    IntMeter Keppienmaara;
169
170    void Keppilaskuri()
171    {
172        Keppienmaara = new IntMeter(0);
173
174        Label pisteNaytto = new Label();
175        pisteNaytto.X = Screen.Left + 100;
176        pisteNaytto.Y = Screen.Top - 100;
177        pisteNaytto.TextColor = Color.Black;
178        pisteNaytto.Color = Color.White;
179        pisteNaytto.Title = "Kepit";
180
181        pisteNaytto.BindTo(Keppienmaara);
182        Add(pisteNaytto);
183    }
184
185
186    void LuoKivi1(double kivi1leveys, double kivi1pituus, double x, double y)
187    {
188        PhysicsObject kivi1 = new PhysicsObject(kivi1leveys, kivi1pituus);
189        kivi1.Tag = "kiviaahh!ruumiita!nytsattuu!!";
190
191        AddCollisionHandler(kivi1, Pelaaja, CollisionHandler.DestroyObject);
192        kivi1.IgnoresCollisionResponse = true;
193
194
195
196        kivi1.X = x;
197        kivi1.Y = y;
198
199
200        kivi1.Image = kivikuva1;
201        Add(kivi1);
202    }
203
204
205
206    void LuoPelaaja()
207    {
208        Pelaaja = new PhysicsObject(180, 300);
209        Pelaaja.CanRotate = false;
210        Pelaaja.Image = pelaajakuva;
211        Pelaaja.Y = -200;
212        Pelaaja.Tag = "pellaaja";
213        AddCollisionHandler(Pelaaja, "kepukka", keraakeppi);
214        AddCollisionHandler(Pelaaja, "kiviaahh!ruumiita!nytsattuu!!", tuhooPelaaja);
215        Add(Pelaaja);
216        Camera.Follow(Pelaaja);
217
218    }
219
220    void AsetaOhjaimet()
221    {
222
223        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Mene Oikealle", Pelaaja, nopeusOikealle);
224        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, Pelaaja, Vector.Zero);
225        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Mene Vasemmalle", Pelaaja, nopeusVasemmalle);
226        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, Pelaaja, Vector.Zero);
227
228    }
229
230
231
232
233
234    void keraakeppi(PhysicsObject Pelaaja, PhysicsObject keppi)
235    {
236
237        Keppienmaara.Value = Keppienmaara + 1;
238        keppi.Destroy();
239    }
240
241    void AsetaNopeus(PhysicsObject Pelaaja, Vector nopeus)
242    {
243        Pelaaja.Velocity = nopeus;
244    }
245
246    void LuoKeppi(double x, double y)
247    {
248        PhysicsObject keppi = new PhysicsObject(10, 100);
249        keppi.IgnoresCollisionResponse = false;
250        keppi.Image = kepinkuva;
251        keppi.Tag = "kepukka";
252        keppi.X = x;
253        keppi.Y = y;
254
255
256        Add(keppi);
257    }
258
259
260
261
262
263
264
265
266
267}
Note: See TracBrowser for help on using the repository browser.