source: 2011/24/PauliN/Jalkapallopeli/Jalkapallopeli/Jalkapallopeli/Peli.cs @ 2048

Revision 2048, 6.0 KB checked in by paaaanro, 8 years ago (diff)
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    Image pallonKuva = LoadImage("football");   
12    Image pelaaja1Kuva = LoadImage("pelaaja1");   
13    Image pelaaja1oikKuva = LoadImage("pelaaja1oik");
14    Image pelaaja2Kuva = LoadImage("pelaaja2");
15    Image pelaaja2vasKuva = LoadImage("pelaaja2vas");
16    Image tausta = LoadImage("tausta");
17
18    PhysicsObject pallo;
19    PhysicsObject nurmi;
20    PhysicsObject maali1;
21    PhysicsObject maali2;
22    PhysicsObject pelaaja1;
23    PhysicsObject pelaaja2;
24
25    IntMeter Pelaajan1Pisteet;
26    IntMeter Pelaajan2Pisteet;
27
28   
29
30    Vector NopeusVasemmalle = new Vector(-150, 0);
31    Vector NopeusOikealle = new Vector(150, 0);
32    Vector HyppyVoima = new Vector(0, 400);
33       
34    public override void Begin()
35    {
36        LuoKentta();
37        AloitaPeli();
38        AsetaOhjaimet();
39        LisaaLaskurit();
40
41               
42    }
43    void LuoKentta()
44    {
45        pallo = new PhysicsObject(45, 45);
46        pallo.Image = pallonKuva;
47        pallo.X = 0;
48        pallo.Y = 300;
49        pallo.Mass = 1;
50        Add(pallo);
51
52        Level.Background.Image = tausta;
53        Level.Background.FitToLevel();
54
55        PhysicsObject nurmi = PhysicsObject.CreateStaticObject(1000, 50);
56        nurmi.Shape = Shape.Rectangle;
57        nurmi.X = 0;
58        nurmi.Y = Level.Bottom;
59        nurmi.Color = Color.Green;       
60        Add(nurmi);
61
62       
63        maali1 = PhysicsObject.CreateStaticObject(20, 120);
64        maali1.Shape = Shape.Rectangle;
65        maali1.X = Level.Left + 20;
66        maali1.Y = Level.Bottom + 75;
67        Add(maali1);
68
69        maali2 = PhysicsObject.CreateStaticObject(20, 120);
70        maali2.Shape = Shape.Rectangle;
71        maali2.X = Level.Right - 20;
72        maali2.Y = Level.Bottom + 75;
73        Add(maali2);
74       
75        Level.CreateLeftBorder(1, false);       
76        Level.CreateTopBorder(1, false);
77        Level.CreateRightBorder(1, false);
78        Level.CreateBottomBorder(1, false);
79
80        Camera.ZoomToLevel();
81        Camera.Follow(pallo);       
82
83        pelaaja1 = LuoPelaaja(Level.Left + 200, 0);
84        pelaaja2 = LuoPelaaja(Level.Right - 200, 0);
85
86        pelaaja1.Image = pelaaja1oikKuva;
87        pelaaja2.Image = pelaaja2vasKuva;
88
89        AddCollisionHandler(pallo, KasittelePallonTormays);
90
91        pelaaja1.CanRotate = false;
92        pelaaja2.CanRotate = false;
93               
94
95    }
96    void AloitaPeli()
97    {
98        Gravity = new Vector(0.0, -400);
99    }
100
101    PhysicsObject LuoPelaaja(double x, double y)
102    {
103        PhysicsObject pelaaja = new PhysicsObject(40, 40);
104        pelaaja.Shape = Shape.Circle;
105        pelaaja.X = x;
106        pelaaja.Y = y;
107        Add(pelaaja);
108
109        return pelaaja;
110    }
111
112    void LisaaLaskurit()
113    {
114        Pelaajan1Pisteet = LuoPisteLaskuri ( Screen.Left + 50, Screen.Top - 50);
115        Pelaajan2Pisteet = LuoPisteLaskuri ( Screen.Right - 50, Screen.Top - 50);
116    }
117
118    IntMeter LuoPisteLaskuri(double x, double y)
119    {
120        IntMeter laskuri = new IntMeter(0);
121        laskuri.MaxValue = 10;
122        Label naytto = new Label();
123        naytto.BindTo (laskuri);
124        naytto.X = x;
125        naytto.Y = y;
126        naytto.TextColor = Color.White;
127        naytto.BorderColor = Color.LightBlue;
128        naytto.Color = Color.LightBlue;
129        Add(naytto);
130
131        return laskuri;
132
133    }
134   
135
136    void AsetaOhjaimet()
137    {
138        Keyboard.Listen(Key.Escape, ButtonState.Released, Exit, "LopetaPeli");
139
140        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja1: Liiku Vasemmalle", pelaaja1, NopeusVasemmalle );
141        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja1, Vector.Zero);
142
143        Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus, "Pelaaja1: Liiku Oikealle", pelaaja1, NopeusOikealle);
144        Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus, null, pelaaja1, Vector.Zero);
145
146        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Pelaaja2: Liiku Vasemmalle", pelaaja2, NopeusVasemmalle);
147        Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus, null, pelaaja2, NopeusVasemmalle);
148
149        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Pelaaja2: Liiku Oikealle", pelaaja2, NopeusOikealle);
150        Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus, null, pelaaja2, NopeusOikealle);
151
152        Keyboard.Listen(Key.W, ButtonState.Pressed, AsetaHyppy, "Pelaaja1: Hyppaa", pelaaja1, HyppyVoima);
153
154        Keyboard.Listen(Key.Up, ButtonState.Pressed, AsetaHyppy, "Pelaaja2: Hyppaa", pelaaja2, HyppyVoima);
155       
156
157
158
159
160
161
162    }
163
164    void AsetaNopeus(PhysicsObject pelaaja, Vector nopeus)
165    {               
166        pelaaja.Velocity = nopeus;
167        if (nopeus.X > 0)
168        {
169            if (pelaaja == pelaaja1)
170
171               pelaaja1.Image = pelaaja1oikKuva;
172            if (pelaaja == pelaaja2)
173
174            pelaaja2.Image = pelaaja2Kuva;
175        }
176        if (nopeus.X < 0)
177        {
178            if (pelaaja == pelaaja1)
179            pelaaja1.Image = pelaaja1Kuva;
180
181            if (pelaaja == pelaaja2)
182            pelaaja2.Image = pelaaja2vasKuva;
183        }
184       
185       
186    }
187
188    void AsetaHyppy(PhysicsObject pelaaja, Vector voima)
189    {
190        pelaaja.Hit (voima);
191
192    }
193
194    void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde)
195    {
196        if(kohde == maali2)
197        {
198            Pelaajan1Pisteet.Value += 1;
199            pallo.X = 0;
200            pallo.Y = 300;
201            pelaaja1.X = -200;
202            pelaaja2.X = 200;
203        }
204        else if (kohde == maali1)
205        {
206            pallo.X = 0;
207            pallo.Y = 300;
208            pelaaja1.X = -200;
209            pelaaja2.X = 200;
210            Pelaajan2Pisteet.Value += 1;
211        }
212
213       
214
215
216    }
217   
218             
219}
Note: See TracBrowser for help on using the repository browser.