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

Revision 2574, 8.8 KB checked in by jemapalm, 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 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, "valikko");
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
109        PhysicsObject vasenReuna = Level.CreateLeftBorder();
110        vasenReuna.Restitution = 1.0;
111        vasenReuna.IsVisible = false;
112
113        PhysicsObject oikeaReuna = Level.CreateRightBorder();
114        oikeaReuna.Restitution = 1.0;
115        oikeaReuna.IsVisible = false;
116
117        PhysicsObject yläReuna = Level.CreateTopBorder();
118        yläReuna.Restitution = 1.0;
119        yläReuna.IsVisible = false;
120
121        PhysicsObject alaReuna = Level.CreateBottomBorder();
122        alaReuna.Restitution = 1.0;
123        alaReuna.IsVisible = false;
124
125       
126        Luomaali(Level.Left + 15.0, 0.0);
127        luomaali2(Level.Right - 15.0, 0.0);
128
129        Level.Background.Image = jalkapallokenttä;
130        Level.Background.FitToLevel();
131        IsFullScreen = true;
132        Camera.ZoomToLevel();
133
134        PhysicsObject vasenylä = PhysicsObject.CreateStaticObject(70.0, 70.0);
135        vasenylä.Top = Level.Top;
136        vasenylä.Left = Level.Left;
137        vasenylä.Tag = "kulma";
138        Add(vasenylä);
139        vasenylä.IsVisible = false;
140
141
142        PhysicsObject oikeaylä = PhysicsObject.CreateStaticObject(70.0, 70.0);
143        oikeaylä.Top = Level.Top;
144        oikeaylä.Right= Level.Right;
145        oikeaylä.Tag = "kulma";
146        Add(oikeaylä);
147        oikeaylä.IsVisible = false;
148
149        PhysicsObject vasenala = PhysicsObject.CreateStaticObject(70.0, 70.0);
150        vasenala.Bottom = Level.Bottom;
151        vasenala.Left = Level.Left;
152        vasenala.Tag = "kulma";
153        Add(vasenala);
154        vasenala.IsVisible = false;
155
156        PhysicsObject oikeaala = PhysicsObject.CreateStaticObject(70.0, 70.0);
157        oikeaala.Bottom = Level.Bottom;
158        oikeaala.Right = Level.Right;
159        oikeaala.Tag = "kulma";
160        Add(oikeaala);
161        oikeaala.IsVisible = false;
162
163    }
164
165
166
167
168    void luohahmot()
169    {
170        pelaaja1 = new PhysicsObject(60.0, 60.0);
171        Add(pelaaja1);
172        pelaaja1.X = 200;
173        pelaaja1.Color = Color.Black;
174        pelaaja1.Image = LoadImage("vii2");
175        pelaaja1.CanRotate = false;
176
177        pelaaja2 = new PhysicsObject(60.0, 60.0);
178        Add(pelaaja2);
179        pelaaja2.X = -200;
180        pelaaja2.Image = LoadImage("vii");
181        pelaaja2.CanRotate = false;
182
183
184    }
185
186    void luopallo()
187    {
188        PhysicsObject pallo = new PhysicsObject(40, 40);
189        pallo.Image = jalkapallo;
190        pallo.Shape = Shape.FromImage(jalkapallo);
191        pallo.Color = Color.YellowGreen;
192        AddCollisionHandler(pallo, KasittelePallonTormays);
193        Add(pallo);
194    }
195
196    void asetaohjaimet()
197    {
198
199        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu vasemmalle", new Vector(-350, 0));
200        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu oikealle", new Vector(350, 0));
201        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu alas", new Vector(0, -350));
202        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, "Pelaaja liikkuu ylös", new Vector(0, 350));
203
204        Keyboard.Listen(Key.A, ButtonState.Down, LiikutaPelaajaa2, "Pelaaja liikkuu vasemmalle", new Vector(-350, 0));
205        Keyboard.Listen(Key.D, ButtonState.Down, LiikutaPelaajaa2, "Pelaaja liikkuu oikealle", new Vector(350, 0));
206        Keyboard.Listen(Key.S, ButtonState.Down, LiikutaPelaajaa2, "Pelaaja liikkuu alas", new Vector(0, -350));
207        Keyboard.Listen(Key.W, ButtonState.Down, LiikutaPelaajaa2, "Pelaaja liikkuu ylös", new Vector(0, 350));
208
209
210
211        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
212        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
213
214    }
215
216
217    void LiikutaPelaajaa(Vector vektori)
218    {
219        pelaaja1.Push(vektori);
220
221    }
222
223
224    void LiikutaPelaajaa2(Vector vektori)
225    {
226        pelaaja2.Push(vektori);
227    }
228    void Luomaali(double x, double y)
229    {
230        PhysicsObject maali = PhysicsObject.CreateStaticObject(20.0, 100.0);
231        maali.Shape = Shape.Rectangle;
232        maali.X = Level.Left + 67.0;
233        maali.Y = 0.0;
234        maali.Restitution = 1.0;
235        maali.Tag = "maali";
236        Add(maali);
237    }
238
239    void luomaali2(double x, double y)
240    {
241        PhysicsObject maali2 = PhysicsObject.CreateStaticObject(20.0, 100.0);
242        maali2.Shape = Shape.Rectangle;
243        maali2.X = Level.Right - 75.0;
244        maali2.Y = 0.0;
245        maali2.Restitution = 1.0;
246        maali2.Tag = "maali2";
247        Add(maali2);
248        maali2.Color = Color.Black;
249
250
251    }
252
253    IntMeter LuoPisteLaskuri(double x, double y)
254    {
255        IntMeter laskuri = new IntMeter(0);
256        laskuri.MaxValue = 100;
257        Label naytto = new Label();
258        naytto.BindTo(laskuri);
259        naytto.X = x;
260        naytto.Y = y;
261        naytto.TextColor = Color.White;
262        naytto.BorderColor = Level.BackgroundColor;
263        naytto.Color = Level.BackgroundColor;
264        Add(naytto);
265        return laskuri;
266    }
267
268    void Lisaalaskurit()
269    {
270        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
271        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0);
272    }
273
274    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde)
275    {
276        if (kohde.Tag.ToString() == "maali")
277        {
278            pelaajan2Pisteet.Value += 1;
279            pallo.Destroy();
280            luopallo();
281            pelaaja1.Destroy();
282            pelaaja2.Destroy();
283            luohahmot();
284        }
285        else if (kohde.Tag.ToString() == "maali2")
286        {
287            pelaajan1Pisteet.Value += 1;
288            pallo.Destroy();
289            luopallo();
290            pelaaja1.Destroy();
291            pelaaja2.Destroy();
292            luohahmot();
293        }
294
295        else if(kohde.Tag.ToString() == "kulma")
296        {
297            pallo.Hit(-kohde.Position/3);
298        }
299
300    }
301
302
303
304
305
306}
307
308
Note: See TracBrowser for help on using the repository browser.