source: 2017/24/EljaL/TheMetsäsurvivor/TheMetsäsurvivor/TheMetsäsurvivor/TheMetsäsurvivor.cs @ 8705

Revision 8705, 9.4 KB checked in by npo17_22, 4 years ago (diff)

pistegeneraattori toimiii kohta

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class TheMetsäsurvivor : PhysicsGame
10{
11    PhysicsObject ihminen;
12    PhysicsObject karhu;
13    public override void Begin()
14    {
15        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
16
17
18        Mouse.IsCursorVisible = true;
19
20        Camera.Zoom(1.0);
21
22        Reuna(10, 4000, -2000, 0);
23        Reuna(10, 4000, 2000, 0);
24        Reuna(4000, 10, 0, 2000);
25        Reuna(4000, 10, 0, -2000);
26
27        ihminen = new PhysicsObject(40, 40);
28        ihminen.CanRotate = true;
29        ihminen.Restitution = 0.0;
30        ihminen.Shape = Shape.Pentagon;
31        Add(ihminen);
32
33        FollowerBrain seuraajanAivot = new FollowerBrain(ihminen);
34        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
35        satunnaisAivot.ChangeMovementSeconds = 3;
36
37        karhu = new PhysicsObject(40.0, 40.0);
38        karhu.Color = Color.Brown;
39        karhu.X = RandomGen.NextDouble(2000, -2000);
40        karhu.Y = RandomGen.NextDouble(2000, -2000);
41        karhu.Tag = "karhu";
42        karhu.Brain = seuraajanAivot;
43        Add(karhu);
44
45        seuraajanAivot.Speed = 100;
46        seuraajanAivot.DistanceFar = 1000;
47        seuraajanAivot.FarBrain = satunnaisAivot;
48        seuraajanAivot.FarBrain = satunnaisAivot;
49
50
51
52
53
54        AddCollisionHandler(ihminen, karhu, karhutormays);
55
56        for (int i = 0; i < RandomGen.NextInt(10, 30); i++)
57        {
58            teekivi();
59        }
60
61        for (int i = 0; i < RandomGen.NextInt(100, 200); i++)
62        {
63            teepuu();
64        }
65
66        LuoPuulaskuri();
67        LuoKivilaskuri();
68        luopojolaskuri();
69        luohplaskuri();
70        luopistegen();
71        LuoAikaLaskuri();
72        luopuugen();
73        luokivigen();
74
75        luokentta();
76
77        Keyboard.Listen(Key.Left, ButtonState.Down, käännäpelaajaav, null);
78        Keyboard.Listen(Key.Right, ButtonState.Down, käännäpelaajaao, null);
79        Keyboard.Listen(Key.Up, ButtonState.Down, käännäpelaajaay, null);
80        Keyboard.Listen(Key.Down, ButtonState.Down, käännäpelaajaaa, null);
81
82        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-50, 0));
83        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, new Vector(50, 0));
84        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 50));
85        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -50));
86
87        Camera.Follow(ihminen);
88    }
89
90    void LiikutaPelaajaa(Vector vektori)
91    {
92        ihminen.Push(vektori);
93    }
94    void luokentta()
95    {
96
97
98        Level.Background.Color = Color.Wheat;
99
100        AddCollisionHandler(ihminen, "puu", puutormays);
101    }
102    void käännäpelaajaav()
103    {
104        ihminen.Angle = Angle.FromDegrees(-90);
105    }
106    void käännäpelaajaao()
107    {
108        ihminen.Angle = Angle.FromDegrees(90);
109    }
110    void käännäpelaajaay()
111    {
112        ihminen.Angle = Angle.FromDegrees(180);
113    }
114    void käännäpelaajaaa()
115    {
116        ihminen.Angle = Angle.FromDegrees(0);
117    }
118    void teekivi()
119    {
120        PhysicsObject kivi = PhysicsObject.CreateStaticObject(100.0, 100.0);
121        kivi.Color = Color.Gray;
122        kivi.X = RandomGen.NextDouble(-2000, 2000);
123        kivi.Y = RandomGen.NextDouble(-2000, 2000);
124        kivi.Tag = "kivi";
125        kivi.Tag = "tolppa";
126        Add(kivi);
127
128
129
130
131
132        AddCollisionHandler(ihminen, kivi, kivitormays);
133
134    }
135    IntMeter puuLaskuri;
136
137    void LuoPuulaskuri()
138    {
139        puuLaskuri = new IntMeter(0);
140
141        Label puuNaytto = new Label();
142        puuNaytto.X = Screen.Left + 100;
143        puuNaytto.Y = Screen.Top - 100;
144        puuNaytto.TextColor = Color.Brown;
145        puuNaytto.Color = Color.Wheat;
146        puuNaytto.Title = "puu";
147
148        puuNaytto.BindTo(puuLaskuri);
149        Add(puuNaytto);
150    }
151    IntMeter kivilaskuri;
152
153    void LuoKivilaskuri()
154    {
155        kivilaskuri = new IntMeter(0);
156
157        Label kiviNaytto = new Label();
158        kiviNaytto.X = Screen.Left + 100;
159        kiviNaytto.Y = Screen.Top - 75;
160        kiviNaytto.TextColor = Color.Gray;
161        kiviNaytto.Color = Color.Wheat;
162        kiviNaytto.Title = "kivi";
163
164        kiviNaytto.BindTo(kivilaskuri);
165        Add(kiviNaytto);
166    }
167    void puutormays(PhysicsObject tormaaja, PhysicsObject puu)
168    {
169        puuLaskuri.Value += 1;
170
171    }
172    void kivitormays(PhysicsObject tormaaja, PhysicsObject kivi)
173    {
174        kivilaskuri.Value += 1;
175    }
176    IntMeter pojolaskuri;
177
178    void luopojolaskuri()
179    {
180        pojolaskuri = new IntMeter(0);
181
182        Label pojonaytto = new Label();
183        pojonaytto.X = Screen.Left + 100;
184        pojonaytto.Y = Screen.Top - 50;
185        pojonaytto.TextColor = Color.Black;
186        pojonaytto.Color = Color.Wheat;
187        pojonaytto.Title = "pojot";
188
189
190        pojonaytto.BindTo(pojolaskuri);
191        Add(pojonaytto);
192    }
193    IntMeter hplaskuri;
194
195    void luohplaskuri()
196    {
197        hplaskuri = new IntMeter(10);
198        hplaskuri.MinValue = 0;
199        hplaskuri.LowerLimit += ripped;
200        hplaskuri.AddOverTime(1000000000, 10000000000);
201        hplaskuri.MaxValue = 10;
202
203        Label hpnaytto = new Label();
204        hpnaytto.X = Screen.Left + 100;
205        hpnaytto.Y = Screen.Top - 125;
206        hpnaytto.TextColor = Color.Red;
207        hpnaytto.Color = Color.Wheat;
208        hpnaytto.Title = "hp";
209
210        hpnaytto.BindTo(hplaskuri);
211        Add(hpnaytto);
212    }
213    void karhutormays(PhysicsObject ihminen, PhysicsObject karhu)
214    {
215        hplaskuri.Value -= 1;
216    }
217    void ripped()
218    {
219        MessageDisplay.Add("kuolit");
220        ihminen.Destroy();
221    }
222
223    void teepuu()
224    {
225        PhysicsObject puu = PhysicsObject.CreateStaticObject(100.0, 100.0);
226        puu.X = RandomGen.NextDouble(-2000, 2000);
227        puu.Y = RandomGen.NextDouble(-2000, 2000);
228        puu.Color = Color.Green;
229        puu.Tag = "tolppa";
230        puu.Tag = "puu";
231        Add(puu);
232    }
233    void Reuna(double leveys, double korkeus, double x, double y)
234    {
235        PhysicsObject reunapalikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
236        reunapalikka.X = x;
237        reunapalikka.Y = y;
238        reunapalikka.Color = Color.Wheat;
239        Add(reunapalikka);
240
241
242    }
243    IntMeter pistegen;
244
245    void luopistegen()
246    {
247        pistegen = new IntMeter(0);
248        pistegen.MaxValue = 10;
249        pistegen.MinValue = 0;
250
251
252        Label pistegennaytto = new Label();
253        pistegennaytto.X = Screen.Right + -150;
254        pistegennaytto.Y = Screen.Top - 100;
255        pistegennaytto.TextColor = Color.Blue;
256        pistegennaytto.Color = Color.Wheat;
257        pistegennaytto.Title = "pistegeneraattorit";
258        Keyboard.Listen(Key.I, ButtonState.Pressed, pistegeneraattori, null);
259
260        pistegennaytto.BindTo(pistegen);
261        Add(pistegennaytto);
262    }
263    void LuoAikaLaskuri()
264    {
265        Timer aikaLaskuri = new Timer();
266        aikaLaskuri.Start();
267
268        Label aikaNaytto = new Label();
269        aikaNaytto.TextColor = Color.Black;
270        aikaNaytto.X = Screen.Left + 100;
271        aikaNaytto.Y = Screen.Top + -25;
272        aikaNaytto.Color = Color.Wheat;
273        aikaNaytto.DecimalPlaces = 0;
274        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
275        Add(aikaNaytto);
276    }
277    IntMeter puugen;
278
279    void luopuugen()
280    {
281        puugen = new IntMeter(0);
282
283        Label puugennaytto = new Label();
284        puugennaytto.X = Screen.Right + -150;
285        puugennaytto.Y = Screen.Top - 75;
286        puugennaytto.TextColor = Color.Brown;
287        puugennaytto.Color = Color.Wheat;
288        puugennaytto.Title = "puugeneraattorit";
289        Keyboard.Listen(Key.P, ButtonState.Pressed, puugeneraattori, null);
290
291        puugennaytto.BindTo(puugen);
292        Add(puugennaytto);
293    }
294    IntMeter kivigen;
295
296
297    void luokivigen()
298    {
299        kivigen = new IntMeter(0);
300
301        Label kivigennaytto = new Label();
302        kivigennaytto.X = Screen.Right + -150;
303        kivigennaytto.Y = Screen.Top - 50;
304        kivigennaytto.TextColor = Color.Gray;
305        kivigennaytto.Color = Color.Wheat;
306        kivigennaytto.Title = "kivigeneraattorit";
307        Keyboard.Listen(Key.K, ButtonState.Pressed, kivigenraattori, null);
308
309        kivigennaytto.BindTo(kivigen);
310        Add(kivigennaytto);
311    }
312    void kivigenraattori()
313    {
314        if (kivilaskuri > 9)
315        {
316            if (puuLaskuri > 29)
317            {
318                kivigen.Value += 1;
319                kivilaskuri.Value -= 10;
320                puuLaskuri.Value -= 30;
321            }
322        }
323
324
325
326
327
328    }
329    void puugeneraattori()
330    {
331        if (puuLaskuri > 9)
332        {
333            if (kivilaskuri > 29)
334            {
335                puugen.Value += 1;
336                puuLaskuri.Value -= 10;
337                kivilaskuri.Value -= 30;
338            }
339        }
340    }
341    void pistegeneraattori()
342    {
343        if (puuLaskuri > 0)
344        {
345            if (kivilaskuri > 0)
346            {
347                pistegen.Value += 1;
348                pojolaskuri.AddOverTime(1000000, 10000000);
349                puuLaskuri.Value -= 0;
350                kivilaskuri.Value -= 0;
351            }
352        }
353    }
354}
Note: See TracBrowser for help on using the repository browser.