source: 2015/26/Tuisku/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1/FysiikkaPeli1.cs @ 6184

Revision 6184, 7.5 KB checked in by iisaaira, 6 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 FysiikkaPeli1 : PhysicsGame
10{
11    //korjaa piste lasku
12    //tee päävalikko
13    //pallon grafiikka
14    //verkon grafiikka
15    //lisää voittaja
16    //restart
17    //kentän grafiikka
18   
19
20   
21
22
23
24
25
26    Image tausta = LoadImage("ergo2");
27    Image pallon = LoadImage("pallo");
28   
29    PhysicsObject maila1;
30    PhysicsObject maila2;
31    PhysicsObject pallo;
32    PhysicsObject oikea;
33    PhysicsObject vasen;
34    IntMeter piste1;
35    IntMeter piste2;
36
37    Vector nopeusYlos = new Vector(200, 0);
38    Vector nopeusAlas = new Vector(-200, 0);
39
40
41
42    public override void Begin()
43    {
44
45        LuoKenttä();
46        LuoPallo();
47        LuoOikea();
48        laskuri();
49        laskuri2();
50        asetanapit();
51        LuoVasen();
52
53        Gravity = new Vector(0.0, -700.0);
54
55       
56       
57    }
58
59    void LuoKenttä()
60    {
61        PhysicsObject verkko = PhysicsObject.CreateStaticObject(20.0, 600.0);
62        Add(verkko);
63        verkko.Y = -250.0;
64
65        PhysicsObject kenttä = new PhysicsObject(30000, 100);
66        Add(kenttä);
67        kenttä.Y = -450;
68        Level.CreateBorders(1.0, false);
69        // Camera.ZoomToLevel();
70        Level.Background.Color = Color.YellowGreen;
71        kenttä.Restitution = 1.0;
72       
73
74        maila1 = PhysicsObject.CreateStaticObject(20.0, 80.0);
75        maila1.Shape = Shape.Rectangle;
76        maila1.X = Level.Left + 20.0;
77        maila1.Y = 0.0;
78        maila1.Restitution = 1.0;
79        maila1.Angle = Angle.FromDegrees(45);
80        Add(maila1);
81        maila1.Color = Color.Beige;
82
83        maila2 = PhysicsObject.CreateStaticObject(20.0, 80.0);
84        maila2.Shape = Shape.Rectangle;
85        maila2.X = Level.Right + 20.0;
86        maila2.Y = 0.0;
87        maila2.Restitution = 1.0;
88        maila2.Angle = Angle.FromDegrees(125);
89        Add(maila2);
90        maila2.Color = Color.Beige;
91        Level.CreateBottomBorder(1.0, true);
92
93
94
95
96
97
98
99
100    }
101
102
103
104    void LuoPallo()
105    {
106        PhysicsObject pallo = new PhysicsObject(20, 20);
107        pallo.Shape = Shape.Circle;
108        pallo.Color = Color.Yellow;
109        Add(pallo);
110        pallo.X = 480;
111        pallo.Y = 100;
112        Vector impulssi = new Vector(-20.0, 300.0);
113        pallo.Hit(impulssi);
114        pallo.Restitution = 1.0;
115        AddCollisionHandler(pallo, "oikea", Lp1 ); 
116        AddCollisionHandler(pallo, "vasen", Lp2); 
117        pallo.Shape = Shape.Circle; 
118
119    }
120
121
122
123    void asetanapit()
124    {   // pelaaja 1
125        Keyboard.Listen(Key.D, ButtonState.Down, liikuOikealle1, "pelaaja1 liiku oikealle");
126        Keyboard.Listen(Key.D, ButtonState.Released, pysähdy, "");
127        Keyboard.Listen(Key.A, ButtonState.Down, liikuVasemalle1, "pelaaja1 liiku vasemmalle");
128        Keyboard.Listen(Key.A, ButtonState.Released, pysähdy, "");
129        Keyboard.Listen(Key.W, ButtonState.Down, liikuYlös1, "pelaaja1 liiku ylös");
130        Keyboard.Listen(Key.W, ButtonState.Released, pysähdy, "");
131        Keyboard.Listen(Key.S, ButtonState.Down, liikuAlas1, "pelaaja1 liiku alas");
132        Keyboard.Listen(Key.S, ButtonState.Released, pysähdy, "");
133       
134
135        //pelaaja 2
136        Keyboard.Listen(Key.Right, ButtonState.Down, liikuOikealle2, "pelaaja2 liiku oikealle");
137        Keyboard.Listen(Key.Right, ButtonState.Released, pysähdy, "p");
138        Keyboard.Listen(Key.Left, ButtonState.Down, liikuVasemalle2, "pelaaja2 liiku vasemalle");
139        Keyboard.Listen(Key.Left, ButtonState.Released, pysähdy, "");
140        Keyboard.Listen(Key.Up, ButtonState.Down, liikuYlös2, "pelaaja2 liiku ylös");
141        Keyboard.Listen(Key.Up, ButtonState.Released, pysähdy, "");
142        Keyboard.Listen(Key.Down, ButtonState.Down, liikuAlas2, "pelaaja2 liiku alas");
143        Keyboard.Listen(Key.Down, ButtonState.Released, pysähdy, "");
144
145
146
147
148        //yleiset
149        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "näytäohje");
150        Keyboard.Listen(Key.R, ButtonState.Pressed, stadionkenttä, "Stadiono kenttä");
151        Keyboard.Listen(Key.E, ButtonState.Pressed, beachkenttä, "Beach kenttä (kesken)");
152        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
153        Keyboard.Listen(Key.T, ButtonState.Pressed, värikenttä, "värikenttä (kesken)");
154       
155
156
157
158
159
160    }
161
162    void värikenttä()
163    {
164        //Level.Background.Color = Color.YellowGreen;
165        //Level.Background.Image = ; 
166    }
167
168
169    void beachkenttä()
170    {
171        //Level.Background.Image = beach;
172    }
173
174    void stadionkenttä()
175    {
176        Level.Background.Image = tausta;
177    }
178
179    void pysähdy()
180    {
181        Vector stopaa = new Vector(0.0, 0.0);
182        maila1.Velocity = stopaa;
183        maila2.Velocity = stopaa;
184    }
185
186
187    void liikuOikealle1()
188    {
189        Vector liikuo1 = new Vector(400.0, 0.0);
190        maila1.Velocity = liikuo1; 
191    }
192
193
194    void liikuVasemalle1()
195    {
196        Vector liikuv1 = new Vector(-400.0, 00.0);
197        maila1.Velocity = (liikuv1);
198    }
199
200    void liikuOikealle2()
201    {
202        Vector liikuo2 = new Vector(400.0, 00.0);
203        maila2.Velocity = (liikuo2);
204    }
205
206    void liikuVasemalle2()
207    {
208        Vector liikuv2 = new Vector(-400.0, 00.0);
209        maila2.Velocity = (liikuv2);
210    }
211
212    void liikuYlös1()
213    {
214        Vector liikuy1 = new Vector(0.0, 400.0);
215        maila1.Velocity = (liikuy1);
216    }
217
218    void liikuYlös2()
219    {
220        Vector liikuy2 = new Vector(0.0, 400.0);
221        maila2.Velocity = (liikuy2);
222    }
223
224    void liikuAlas1()
225    {
226        Vector liikua1 = new Vector(0.0, -400.0);
227        maila1.Velocity = (liikua1);
228    }
229
230    void liikuAlas2()
231    {
232        Vector liikua2 = new Vector(0.0, -400.0);
233        maila2.Velocity = (liikua2);
234    }
235
236
237   
238   
239
240
241
242    void LuoOikea()
243    {
244        PhysicsObject oikea = PhysicsObject.CreateStaticObject(600.0, 10.0);
245        oikea.Shape = Shape.Rectangle;
246        oikea.Tag = "oikea";
247        Add(oikea);
248        oikea.X = 300;
249        oikea.Y = -400;
250        oikea.Color = Color.Yellow;
251        oikea.Restitution = 1.0;
252    }
253
254    void LuoVasen()
255    {
256        PhysicsObject vasen = PhysicsObject.CreateStaticObject(600.0, 10.0);
257        vasen.Shape = Shape.Rectangle;
258        vasen.Tag = "vasen";
259        Add(vasen);
260        vasen.X = -300;
261        vasen.Y = -400;
262        vasen.Color = Color.Yellow;
263        vasen.Restitution = 1.0;
264    }
265
266    void laskuri()
267    {
268        piste1 = new IntMeter(0);
269
270        Label pisteNaytto = new Label();
271        pisteNaytto.X = Screen.Left + 100;
272        pisteNaytto.Y = Screen.Top - 100;
273        pisteNaytto.TextColor = Color.Black;
274        pisteNaytto.Color = Color.White;
275
276        pisteNaytto.BindTo(piste1);
277        Add(pisteNaytto);
278    }
279       void laskuri2()
280       {
281        piste2 = new IntMeter(0);
282
283        Label pisteNaytto2 = new Label();
284        pisteNaytto2.X = Screen.Right + 100;
285        pisteNaytto2.Y = Screen.Top - 100;
286        pisteNaytto2.TextColor = Color.Black;
287        pisteNaytto2.Color = Color.White;
288
289        pisteNaytto2.BindTo(piste2);
290        Add(pisteNaytto2);
291       }
292
293
294
295
296    void Lp2(PhysicsObject a, PhysicsObject b)
297    {
298        piste2.Value += 1;
299    }
300
301    void Lp1(PhysicsObject a, PhysicsObject b)
302    {
303        piste1.Value += 1;
304    }
305
306
307
308}
309
310
311 
312 
Note: See TracBrowser for help on using the repository browser.