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

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