source: 2012/30/JereK/FysiikkaPeli4/FysiikkaPeli4/FysiikkaPeli4/FysiikkaPeli4.cs @ 3743

Revision 3743, 7.8 KB checked in by anlakane, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class FysiikkaPeli4 : PhysicsGame
10{
11    PhysicsObject pelaaja;
12    Vector pelaajanAlkupaikka = new Vector(-200.0, 0.0);
13    PhysicsObject pelaaja2;
14    Vector pelaajan2Alkupaikka = new Vector(200, 0);
15    Image ukeli1 = LoadImage("pelaanum1");
16    Image taustakuva = LoadImage("settia");
17    Image ukeli2 = LoadImage("punainen1");
18    Image pallonkuva = LoadImage("pallo");
19    Image punpu = LoadImage("punainen2");
20    Image sinpu = LoadImage("pelaajanum2");
21    IntMeter pisteLaskuri;
22    IntMeter pisteLaskuri2;
23    PhysicsObject pallo;
24    PhysicsObject puolustaja;
25    PhysicsObject puolustaja2;
26
27    public override void Begin()
28    {
29        ClearAll();
30
31        pallo = new PhysicsObject(40, 40);
32        Add(pallo);
33        pallo.Shape = Shape.Circle;
34        pallo.Image = pallonkuva;
35
36        MultiSelectWindow alkuValikko = new MultiSelectWindow("EFT Street 2012",
37"Aloita peli", "Tekijät", "Lopeta");
38        Add(alkuValikko);
39        alkuValikko.Color = Color.White;
40        alkuValikko.SelectionColor = Color.Gold;
41        alkuValikko.BorderColor = Color.Gold;
42   
43        alkuValikko.ItemSelected += PainettiinValikonNappia;
44
45        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Lopeta peli");
46
47        pelaaja = new PhysicsObject(50, 50);
48        pelaaja.Position = pelaajanAlkupaikka;
49        Add(pelaaja);
50        pelaaja.Image = ukeli1;
51        pelaaja2 = new PhysicsObject(50, 50);
52        pelaaja2.Position = pelaajan2Alkupaikka;
53        Add(pelaaja2);
54        pelaaja2.Image = ukeli2;
55        pelaaja.Mass = 5;
56        pelaaja2.Mass = 5;
57
58        PhysicsObject mali = PhysicsObject.CreateStaticObject(15.0, 200.0);
59        mali.Shape = Shape.Rectangle;
60        mali.X = Level.Left + 20.0;
61        mali.Y = 0.0;
62        mali.Restitution = 2.0;
63        mali.Tag = "mali";
64        Add(mali);
65        mali.Color = Color.Black;
66
67        PhysicsObject maali = PhysicsObject.CreateStaticObject(20.0, 180.0);
68        maali.Shape = Shape.Rectangle;
69        maali.X = Level.Left + 20.0;
70        maali.Y = 0.0;
71        maali.Restitution = 2.0;
72        maali.Tag = "maali";
73        Add(maali);
74        maali.Color = Color.Blue;
75
76        PhysicsObject mali2 = PhysicsObject.CreateStaticObject(15.0, 200.0);
77        mali2.Shape = Shape.Rectangle;
78        mali2.X = Level.Right - 20.0;
79        mali2.Y = 0.0;
80        mali2.Restitution = 2.0;
81        mali2.Tag = "mali";
82        Add(mali2);
83        mali2.Color = Color.Black;
84
85        puolustaja = new PhysicsObject(50, 50);
86        puolustaja.Image = sinpu;
87        Add(puolustaja);
88        puolustaja.CanRotate = false;
89        puolustaja.X = -300;
90        puolustaja.Y = 50;
91        puolustaja.Mass = 0.2;
92
93
94        puolustaja2 = new PhysicsObject(50, 50);
95        puolustaja2.Image = punpu;
96        Add(puolustaja2);
97        puolustaja2.CanRotate = false;
98        puolustaja2.X = 300;
99        puolustaja2.Y = 50;
100        puolustaja2.Mass = 0.2;
101
102        LuoPisteLaskuri();
103
104        FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja2);
105        FollowerBrain seuraajanAivot2 = new FollowerBrain(pelaaja);
106
107        puolustaja.Brain = seuraajanAivot;
108        puolustaja2.Brain = seuraajanAivot2;
109        seuraajanAivot2.Speed = 80;
110        seuraajanAivot.Speed = 80;
111
112        PhysicsObject maali2 = PhysicsObject.CreateStaticObject(20.0, 180.0);
113        maali2.Shape = Shape.Rectangle;
114        maali2.X = Level.Right - 20.0;
115        maali2.Y = 0.0;
116        maali2.Restitution = 2.0;
117        maali2.Tag = "maali";
118        Add(maali2);
119        maali2.Color = Color.Red;
120
121        AddCollisionHandler(pallo, maali, CollisionHandler.AddMeterValue(pisteLaskuri2, 1));
122        AddCollisionHandler(pallo, maali2, CollisionHandler.AddMeterValue(pisteLaskuri, 1));
123        AddCollisionHandler(pallo, "maali", PalloKeskelle);
124
125        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-900, 0));
126        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(900, 0));
127        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 900));
128        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -900));
129
130        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaaja2, null, new Vector(-900, 0));
131        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaaja2, null, new Vector(900, 0));
132        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaaja2, null, new Vector(0, 900));
133        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaaja2, null, new Vector(0, -900));
134        Keyboard.Listen(Key.R, ButtonState.Pressed, Begin, null);
135
136        Level.CreateBorders(true);
137
138        PhysicsObject vasenYlakulma = PhysicsObject.CreateStaticObject(150, 150);
139        vasenYlakulma.Angle = Angle.FromDegrees(45);
140        vasenYlakulma.Position = new Vector(Level.Left, Level.Top);
141        Add(vasenYlakulma);
142        vasenYlakulma.Color = Color.Transparent;
143
144        PhysicsObject oikeaYlakulma = PhysicsObject.CreateStaticObject(150, 150);
145        oikeaYlakulma.Angle = Angle.FromDegrees(45);
146        oikeaYlakulma.Position = new Vector(Level.Right, Level.Top);
147        Add(oikeaYlakulma);
148        oikeaYlakulma.Color = Color.Transparent;
149
150        PhysicsObject alaYlakulma = PhysicsObject.CreateStaticObject(150, 150);
151        alaYlakulma.Angle = Angle.FromDegrees(45);
152        alaYlakulma.Position = new Vector(Level.Left, Level.Bottom);
153        Add(alaYlakulma);
154        alaYlakulma.Color = Color.Transparent;
155
156        PhysicsObject oikeaAlakulma = PhysicsObject.CreateStaticObject(150, 150);
157        oikeaAlakulma.Angle = Angle.FromDegrees(45);
158        oikeaAlakulma.Position = new Vector(Level.Right, Level.Bottom);
159        Add(oikeaAlakulma);
160        oikeaAlakulma.Color = Color.Transparent;
161
162        Level.Background.Image = taustakuva;
163        Camera.ZoomToLevel();
164
165        pelaaja.CanRotate = false;
166        pelaaja2.CanRotate = false;
167    }
168
169    void PalloKeskelle(PhysicsObject pallo, PhysicsObject kohde)
170    {
171        pallo.Velocity = Vector.Zero;
172        pallo.Position = Vector.Zero;
173        pelaaja.Position = pelaajanAlkupaikka;
174        pelaaja2.Position = pelaajan2Alkupaikka;
175    }
176
177    void LiikutaPelaajaa(Vector vektori)
178    {
179        pelaaja.Push(vektori);
180    }
181
182    void LiikutaPelaaja2(Vector vektori)
183    {
184        pelaaja2.Push(vektori);
185    }
186
187    void LuoPisteLaskuri()
188    {
189        pisteLaskuri = new IntMeter(0);
190
191        Label pisteNaytto = new Label();
192        pisteNaytto.X = Screen.Left + 100;
193        pisteNaytto.Y = Screen.Top - 30;
194        pisteNaytto.TextColor = Color.Aqua;
195        pisteNaytto.Color = Color.Green;
196        pisteNaytto.BindTo(pisteLaskuri);
197        pisteNaytto.Title = "Blue";
198        Add(pisteNaytto);
199
200        pisteLaskuri2 = new IntMeter(0);
201
202        Label pisteNaytto2 = new Label();
203        pisteNaytto2.X = Screen.Right - 100;
204        pisteNaytto2.Y = Screen.Top - 30;
205        pisteNaytto2.TextColor = Color.Red;
206        pisteNaytto2.Color = Color.Green;
207        pisteNaytto2.BindTo(pisteLaskuri2);
208        pisteNaytto2.Title = "Red";
209        Add(pisteNaytto2);
210
211    }
212
213    void PainettiinValikonNappia(int valinta)
214{
215  switch (valinta)
216  {
217    case 0:
218       
219        break;
220    case 1:
221        MultiSelectWindow valikko = new MultiSelectWindow("Tekijät",
222"Jere K", "Jesse P", "Lopeta peli");
223valikko.ItemSelected += PainettiinValikonNappia;
224Add(valikko);
225valikko.Color = Color.White;
226valikko.SelectionColor = Color.Rose;
227valikko.BorderColor = Color.Rose;
228        break;
229    case 2:
230        ConfirmExit();
231        break;
232  } 
233
234}
235}
236
237
238
Note: See TracBrowser for help on using the repository browser.