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

Revision 5682, 5.7 KB checked in by mikmaral, 7 years ago (diff)

OK 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 taustakuva1 = 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 = taustakuva1;
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        alareuna.CollisionIgnoreGroup = 3;
118        Add(alareuna);
119
120        kepinmuoto = Shape.FromImage(kepinkuva);
121        kiven1muoto = Shape.FromImage(kivikuva1);
122
123        pelaajanmuoto = Shape.FromImage(pelaajakuva);
124        LuoKentta();
125        AsetaOhjaimet();
126        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
127
128
129
130
131
132    }
133
134    void tuhooPelaaja(PhysicsObject Pelaaja, PhysicsObject keppi)
135    {
136        Pelaaja.Destroy();
137
138        Timer.SingleShot(1, aloitaAlusta);
139    }
140    void LuoKivia()
141    {
142
143        int kivix = RandomGen.NextInt(-5000, 5000);
144        LuoKivi1(40, 40, kivix, 1000);
145
146
147    }
148
149    void LuoKeppeja()
150    {
151        int keppix = RandomGen.NextInt(-5000, 5000);
152        LuoKeppi(keppix, 1000);
153    }
154
155
156
157    void LuoKentta()
158    {
159
160        Gravity = new Vector(0, -400);
161
162
163        Keppilaskuri();
164
165        LuoPelaaja();
166
167    }
168
169    IntMeter Keppienmaara;
170
171    void Keppilaskuri()
172    {
173        Keppienmaara = new IntMeter(0);
174
175        Label pisteNaytto = new Label();
176        pisteNaytto.X = Screen.Left + 100;
177        pisteNaytto.Y = Screen.Top - 100;
178        pisteNaytto.TextColor = Color.Black;
179        pisteNaytto.Color = Color.White;
180        pisteNaytto.Title = "Kepit";
181
182        pisteNaytto.BindTo(Keppienmaara);
183        Add(pisteNaytto);
184    }
185
186
187    void LuoKivi1(double kivi1leveys, double kivi1pituus, double x, double y)
188    {
189        PhysicsObject kivi1 = new PhysicsObject(kivi1leveys, kivi1pituus);
190        kivi1.Tag = "kiviaahh!ruumiita!nytsattuu!!";
191
192        AddCollisionHandler(kivi1, Pelaaja, CollisionHandler.DestroyObject);
193        kivi1.IgnoresCollisionResponse = true;
194
195
196
197        kivi1.X = x;
198        kivi1.Y = y;
199
200
201        kivi1.Image = kivikuva1;
202        Add(kivi1);
203    }
204
205
206
207    void LuoPelaaja()
208    {
209        Pelaaja = new PhysicsObject(180, 300);
210        Pelaaja.CanRotate = false;
211        Pelaaja.Image = pelaajakuva;
212        Pelaaja.Y = -200;
213        Pelaaja.Tag = "pellaaja";
214        AddCollisionHandler(Pelaaja, "kepukka", keraakeppi);
215        AddCollisionHandler(Pelaaja, "kiviaahh!ruumiita!nytsattuu!!", tuhooPelaaja);
216        Add(Pelaaja);
217        Camera.Follow(Pelaaja);
218
219    }
220
221    void AsetaOhjaimet()
222    {
223
224        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Mene Oikealle", Pelaaja, nopeusOikealle);
225        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, Pelaaja, Vector.Zero);
226        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Mene Vasemmalle", Pelaaja, nopeusVasemmalle);
227        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, Pelaaja, Vector.Zero);
228
229    }
230
231
232
233
234
235    void keraakeppi(PhysicsObject Pelaaja, PhysicsObject keppi)
236    {
237
238        Keppienmaara.Value = Keppienmaara + 1;
239        keppi.Destroy();
240    }
241
242    void AsetaNopeus(PhysicsObject Pelaaja, Vector nopeus)
243    {
244        Pelaaja.Velocity = nopeus;
245    }
246
247    void LuoKeppi(double x, double y)
248    {
249        PhysicsObject keppi = new PhysicsObject(10, 100);
250        keppi.IgnoresCollisionResponse = false;
251        keppi.Image = kepinkuva;
252        keppi.Tag = "kepukka";
253        keppi.X = x;
254        keppi.Y = y;
255
256
257        Add(keppi);
258    }
259
260
261
262
263
264
265
266
267
268}
Note: See TracBrowser for help on using the repository browser.