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

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