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

Revision 8673, 6.5 KB checked in by npo17_22, 2 years ago (diff)

hoopeet kasvaa ja kaikki on hyvin

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{ PhysicsObject ihminen;
11    PhysicsObject karhu;
12    public override void Begin()
13    {
14        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
15
16
17        Mouse.IsCursorVisible = true;
18
19       
20
21        Camera.Zoom(1.0);
22
23        Reuna(10, 4000, -2000, 0);
24        Reuna(10, 4000, 2000, 0);
25        Reuna(4000, 10, 0, 2000);
26        Reuna(4000, 10, 0, -2000);
27
28        ihminen = new PhysicsObject(40, 40);
29        ihminen.CanRotate = true;
30        ihminen.Restitution = 0.0;
31        ihminen.Shape = Shape.Pentagon;
32        Add(ihminen);
33
34        FollowerBrain seuraajanAivot = new FollowerBrain(ihminen);
35        RandomMoverBrain satunnaisAivot = new RandomMoverBrain(200);
36        satunnaisAivot.ChangeMovementSeconds = 3;
37
38        karhu = new PhysicsObject(40.0, 40.0);
39        karhu.Color = Color.Brown;
40        karhu.X = RandomGen.NextDouble(2000, -2000);
41        karhu.Y = RandomGen.NextDouble(2000, -2000);
42        karhu.Tag = "karhu";
43        karhu.Brain = seuraajanAivot;
44        Add(karhu);
45
46        seuraajanAivot.Speed = 50;
47        seuraajanAivot.DistanceFar = 1000;
48        seuraajanAivot.FarBrain = satunnaisAivot;
49        seuraajanAivot.FarBrain = satunnaisAivot;
50
51
52
53
54
55        AddCollisionHandler(ihminen, karhu, karhutormays);
56
57        for (int i = 0; i < RandomGen.NextInt(10, 30); i++)
58        {
59            teekivi();
60        }
61
62        for (int i = 0; i < RandomGen.NextInt(100, 200); i++)
63        {
64            teepuu();
65        }
66
67        LuoPuulaskuri();
68        LuoKivilaskuri();
69        luopojolaskuri();
70        luohplaskuri();
71
72        luokentta();
73
74        Keyboard.Listen(Key.Left, ButtonState.Down, käännäpelaajaav, null);
75        Keyboard.Listen(Key.Right, ButtonState.Down, käännäpelaajaao, null);
76        Keyboard.Listen(Key.Up, ButtonState.Down, käännäpelaajaay, null);
77        Keyboard.Listen(Key.Down, ButtonState.Down, käännäpelaajaaa, null);
78
79            Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-50, 0));
80            Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa, null, new Vector(50, 0));
81            Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 50));
82            Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -50));
83
84        Camera.Follow(ihminen);
85    }
86
87        void LiikutaPelaajaa(Vector vektori)
88{
89            ihminen.Push(vektori);
90        }
91    void luokentta()
92    {
93       
94
95        Level.Background.Color = Color.Wheat;
96
97        AddCollisionHandler(ihminen, "puu", puutormays);
98    }
99    void käännäpelaajaav()
100    {
101        ihminen.Angle = Angle.FromDegrees(-90);
102    }
103void käännäpelaajaao()
104    {
105        ihminen.Angle = Angle.FromDegrees(90);
106    }
107    void käännäpelaajaay()
108    {
109        ihminen.Angle = Angle.FromDegrees(180);
110    }
111    void käännäpelaajaaa()
112    {
113        ihminen.Angle = Angle.FromDegrees(0);
114    }
115    void teekivi()
116    {
117        PhysicsObject kivi = PhysicsObject.CreateStaticObject(100.0, 100.0);
118        kivi.Color = Color.Gray;
119        kivi.X = RandomGen.NextDouble(-2000, 2000);
120        kivi.Y = RandomGen.NextDouble(-2000, 2000);
121        kivi.Tag = "kivi";
122        kivi.Tag = "tolppa";
123        Add(kivi);
124
125   
126       
127
128
129        AddCollisionHandler(ihminen, kivi, kivitormays);
130       
131    }
132    IntMeter puuLaskuri;
133
134    void LuoPuulaskuri()
135    {
136        puuLaskuri = new IntMeter(0);
137
138        Label puuNaytto = new Label();
139        puuNaytto.X = Screen.Left + 100;
140        puuNaytto.Y = Screen.Top - 100;
141        puuNaytto.TextColor = Color.Brown;
142        puuNaytto.Color = Color.Wheat;
143        puuNaytto.Title = "puu";
144
145        puuNaytto.BindTo(puuLaskuri);
146        Add(puuNaytto);
147    }
148    IntMeter kivilaskuri;
149
150    void LuoKivilaskuri()
151    {
152        kivilaskuri = new IntMeter(0);
153
154        Label kiviNaytto = new Label();
155        kiviNaytto.X = Screen.Left + 100;
156        kiviNaytto.Y = Screen.Top - 75;
157        kiviNaytto.TextColor = Color.Gray;
158        kiviNaytto.Color = Color.Wheat;
159        kiviNaytto.Title = "kivi";
160
161        kiviNaytto.BindTo(kivilaskuri);
162        Add(kiviNaytto);
163    }
164    void puutormays(PhysicsObject tormaaja, PhysicsObject puu)
165    {
166        puuLaskuri.Value += 1;
167       
168    }
169    void kivitormays(PhysicsObject tormaaja, PhysicsObject kivi)
170    {
171        kivilaskuri.Value += 1;
172    }
173    IntMeter pojolaskuri;
174
175    void luopojolaskuri()
176    {
177        pojolaskuri = new IntMeter(0);
178        pojolaskuri.AddOverTime(1000000000, 10000000000);
179
180        Label pojonaytto = new Label();
181        pojonaytto.X = Screen.Left + 100;
182        pojonaytto.Y = Screen.Top - 50;
183        pojonaytto.TextColor = Color.Black;
184        pojonaytto.Color = Color.Wheat;
185        pojonaytto.Title = "pojot";
186
187        pojonaytto.BindTo(pojolaskuri);
188        Add(pojonaytto);
189    }
190    IntMeter hplaskuri;
191
192    void luohplaskuri()
193    {
194        hplaskuri = new IntMeter(10);
195        hplaskuri.MinValue = 0;
196        hplaskuri.LowerLimit += ripped;
197        hplaskuri.AddOverTime(1000000000, 10000000000);
198        hplaskuri.MaxValue = 10;
199
200        Label hpnaytto = new Label();
201        hpnaytto.X = Screen.Left + 100;
202        hpnaytto.Y = Screen.Top - 125;
203        hpnaytto.TextColor = Color.Red;
204        hpnaytto.Color = Color.Wheat;
205        hpnaytto.Title = "hp";
206
207        hpnaytto.BindTo(hplaskuri);
208        Add(hpnaytto);
209    }
210    void karhutormays(PhysicsObject ihminen, PhysicsObject karhu)
211    {
212        hplaskuri.Value -= 1;
213    }
214    void ripped()
215    {
216        MessageDisplay.Add("kuolit");
217    }
218   
219    void teepuu()
220    {
221        PhysicsObject puu = PhysicsObject.CreateStaticObject(100.0, 100.0);
222        puu.X = RandomGen.NextDouble(-2000, 2000);
223        puu.Y = RandomGen.NextDouble(-2000, 2000);
224        puu.Color = Color.Green;
225        puu.Tag = "tolppa";
226        puu.Tag = "puu";
227        Add(puu);
228    }
229    void Reuna(double leveys, double korkeus, double x, double y)
230    {
231        PhysicsObject reunapalikka = PhysicsObject.CreateStaticObject(leveys, korkeus);
232        reunapalikka.X = x;
233        reunapalikka.Y = y;
234        reunapalikka.Color = Color.Wheat;
235        Add(reunapalikka);
236
237
238    }
239}
Note: See TracBrowser for help on using the repository browser.