source: 2011/31/JesseP/pelini/pelini/pelini/Peli.cs @ 2571

Revision 2571, 8.8 KB checked in by jemapalm, 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 Peli : PhysicsGame
10{
11    List<Label> valikonKohdat;
12
13
14    PhysicsObject pelaaja1;
15    PhysicsObject pelaaja2;
16    IntMeter pelaajan1Pisteet;
17    IntMeter pelaajan2Pisteet;
18    Image jalkapallo = LoadImage("jalkapallo");
19    Image jalkapallokenttä = LoadImage("jalkapallokenttä");
20    Image Taustakuva = LoadImage("Taustakuva");
21    Image vii = LoadImage("vii");
22    Image vii2 = LoadImage("vii2");
23    Image Ohjeet1 = LoadImage("tausta2");
24    public override void Begin() { valikko(); }
25
26    void valikko()
27    {
28        ClearAll();
29        Level.Background.Image = Taustakuva;
30        Level.Background.FitToLevel();
31        Level.BackgroundColor = Color.Black;
32        Camera.ZoomToLevel();
33
34        valikonKohdat = new List<Label>();
35
36        Label kohta1 = new Label("Aloita uusi peli");
37        kohta1.Position = new Vector(0, 40);
38        valikonKohdat.Add(kohta1);
39
40        Label kohta2 = new Label("Lopeta");
41        kohta2.Position = new Vector(0, -40);
42        valikonKohdat.Add(kohta2);
43
44        Label kohta3 = new Label("Ohjeet");
45        kohta3.Position = new Vector(0, 0);
46        valikonKohdat.Add(kohta3);
47
48        foreach (Label valikonKohta in valikonKohdat)
49        {
50            Add(valikonKohta);
51        }
52
53        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
54        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
55        Mouse.ListenOn(kohta3, MouseButton.Left, ButtonState.Pressed, Ohjeet, null);
56
57        MessageDisplay.TextColor = Color.Red;
58
59        Mouse.IsCursorVisible = true;
60        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
61        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
62    }
63    void ValikossaLiikkuminen(AnalogState hiirenTila)
64    {
65        foreach (Label kohta in valikonKohdat)
66        {
67            if (Mouse.IsCursorOn(kohta))
68            {
69                kohta.TextColor = Color.White;
70            }
71            else
72            {
73                kohta.TextColor = Color.Red;
74            }
75
76        }
77    }
78    void AloitaPeli()
79    {
80        ClearAll();
81        Ohjeet();
82        luopallo();
83        luohahmot();
84        LuoKentta();
85        asetaohjaimet();
86        Lisaalaskurit();
87       
88        Keyboard.Listen(Key.Escape, ButtonState.Pressed, valikko, "Palaa valikkoon");
89       
90    }
91
92
93    void Ohjeet()
94    {
95        Label kohta3 = new Label("Palaa");
96        kohta3.Position = new Vector(0, 0);
97        valikonKohdat.Add(kohta3);
98        Level.Background.Image = Ohjeet1;
99        Level.Background.FitToLevel();
100        //Image Ohjeet2 = "tausta2";
101    }
102
103    void LuoKentta()
104    {
105       
106        Level.BackgroundColor = Color.Green;
107
108        PhysicsObject vasenReuna = Level.CreateLeftBorder();
109        vasenReuna.Restitution = 1.0;
110        vasenReuna.IsVisible = false;
111
112        PhysicsObject oikeaReuna = Level.CreateRightBorder();
113        oikeaReuna.Restitution = 1.0;
114        oikeaReuna.IsVisible = false;
115
116        PhysicsObject yläReuna = Level.CreateTopBorder();
117        yläReuna.Restitution = 1.0;
118        yläReuna.IsVisible = false;
119
120        PhysicsObject alaReuna = Level.CreateBottomBorder();
121        alaReuna.Restitution = 1.0;
122        alaReuna.IsVisible = false;
123
124       
125        Luomaali(Level.Left + 15.0, 0.0);
126        luomaali2(Level.Right - 15.0, 0.0);
127
128        Level.Background.Image = jalkapallokenttä;
129        Level.Background.FitToLevel();
130        Camera.ZoomToLevel();
131
132        PhysicsObject vasenylä = PhysicsObject.CreateStaticObject(70.0, 70.0);
133        vasenylä.Top = Level.Top;
134        vasenylä.Left = Level.Left;
135        vasenylä.Tag = "kulma";
136        Add(vasenylä);
137        vasenylä.IsVisible = false;
138
139
140        PhysicsObject oikeaylä = PhysicsObject.CreateStaticObject(70.0, 70.0);
141        oikeaylä.Top = Level.Top;
142        oikeaylä.Right= Level.Right;
143        oikeaylä.Tag = "kulma";
144        Add(oikeaylä);
145        oikeaylä.IsVisible = false;
146
147        PhysicsObject vasenala = PhysicsObject.CreateStaticObject(70.0, 70.0);
148        vasenala.Bottom = Level.Bottom;
149        vasenala.Left = Level.Left;
150        vasenala.Tag = "kulma";
151        Add(vasenala);
152        vasenala.IsVisible = false;
153
154        PhysicsObject oikeaala = PhysicsObject.CreateStaticObject(70.0, 70.0);
155        oikeaala.Bottom = Level.Bottom;
156        oikeaala.Right = Level.Right;
157        oikeaala.Tag = "kulma";
158        Add(oikeaala);
159        oikeaala.IsVisible = false;
160
161    }
162
163
164
165
166    void luohahmot()
167    {
168        pelaaja1 = new PhysicsObject(60.0, 60.0);
169        Add(pelaaja1);
170        pelaaja1.X = 200;
171        pelaaja1.Color = Color.Black;
172        pelaaja1.Image = LoadImage("vii2");
173        pelaaja1.CanRotate = false;
174
175        pelaaja2 = new PhysicsObject(60.0, 60.0);
176        Add(pelaaja2);
177        pelaaja2.X = -200;
178        pelaaja2.Image = LoadImage("vii");
179        pelaaja2.CanRotate = false;
180
181
182    }
183
184    void luopallo()
185    {
186        PhysicsObject pallo = new PhysicsObject(40, 40);
187        pallo.Image = jalkapallo;
188        pallo.Shape = Shape.FromImage(jalkapallo);
189        pallo.Color = Color.YellowGreen;
190        AddCollisionHandler(pallo, KasittelePallonTormays);
191        Add(pallo);
192    }
193
194    void asetaohjaimet()
195    {
196
197        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu vasemmalle", new Vector(-350, 0));
198        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu oikealle", new Vector(350, 0));
199        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu alas", new Vector(0, -350));
200        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu ylös", new Vector(0, 350));
201
202        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa2, "Pelaaja liikkuu vasemmalle", new Vector(-350, 0));
203        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa2, "Pelaaja liikkuu oikealle", new Vector(350, 0));
204        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa2, "Pelaaja liikkuu alas", new Vector(0, -350));
205        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa2, "Pelaaja liikkuu ylös", new Vector(0, 350));
206
207
208
209        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
210        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
211
212    }
213
214
215    void LiikutaPelaajaa(Vector vektori)
216    {
217        pelaaja1.Push(vektori);
218
219    }
220
221
222    void LiikutaPelaajaa2(Vector vektori)
223    {
224        pelaaja2.Push(vektori);
225    }
226    void Luomaali(double x, double y)
227    {
228        PhysicsObject maali = PhysicsObject.CreateStaticObject(20.0, 100.0);
229        maali.Shape = Shape.Rectangle;
230        maali.X = Level.Left + 67.0;
231        maali.Y = 0.0;
232        maali.Restitution = 1.0;
233        maali.Tag = "maali";
234        Add(maali);
235    }
236
237    void luomaali2(double x, double y)
238    {
239        PhysicsObject maali2 = PhysicsObject.CreateStaticObject(20.0, 100.0);
240        maali2.Shape = Shape.Rectangle;
241        maali2.X = Level.Right - 75.0;
242        maali2.Y = 0.0;
243        maali2.Restitution = 1.0;
244        maali2.Tag = "maali2";
245        Add(maali2);
246        maali2.Color = Color.Black;
247
248
249    }
250
251    IntMeter LuoPisteLaskuri(double x, double y)
252    {
253        IntMeter laskuri = new IntMeter(0);
254        laskuri.MaxValue = 100;
255        Label naytto = new Label();
256        naytto.BindTo(laskuri);
257        naytto.X = x;
258        naytto.Y = y;
259        naytto.TextColor = Color.White;
260        naytto.BorderColor = Level.BackgroundColor;
261        naytto.Color = Level.BackgroundColor;
262        Add(naytto);
263        return laskuri;
264    }
265
266    void Lisaalaskurit()
267    {
268        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
269        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0);
270    }
271
272    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde)
273    {
274        if (kohde.Tag.ToString() == "maali")
275        {
276            pelaajan2Pisteet.Value += 1;
277            pallo.Destroy();
278            luopallo();
279            pelaaja1.Destroy();
280            pelaaja2.Destroy();
281            luohahmot();
282        }
283        else if (kohde.Tag.ToString() == "maali2")
284        {
285            pelaajan1Pisteet.Value += 1;
286            pallo.Destroy();
287            luopallo();
288            pelaaja1.Destroy();
289            pelaaja2.Destroy();
290            luohahmot();
291        }
292
293        else if(kohde.Tag.ToString() == "kulma")
294        {
295            pallo.Hit(-kohde.Position/3);
296        }
297
298    }
299
300
301
302
303
304}
305
306
Note: See TracBrowser for help on using the repository browser.