source: 2010/23/almiilhi/pong/Peli.cs @ 517

Revision 517, 3.2 KB checked in by almiilhi, 11 years ago (diff)

uusi hieno pong peli

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6namespace pong
7{
8    public class Peli : PhysicsGame
9    {
10        PhysicsObject pallo;
11        PhysicsObject maila1;
12        PhysicsObject maila2;
13
14
15        protected override void Begin()
16        {
17            LuoKentta();
18            AsetaOhjaimet();
19            AloitaPeli();
20        }
21
22        void LuoKentta()
23        {
24            pallo = new PhysicsObject(40.0, 40.0);
25            pallo.Shape = Shapes.Circle;
26            pallo.X = -200.0;
27            pallo.Y = 0.0;
28            pallo.Restitution = 1.0;
29            Add(pallo);
30
31            maila1 = LuoMaila(Level.Left + 20.0, 0.0);
32            maila2 = LuoMaila(Level.Right - 20.0, 0.0);
33                                   
34            Level.CreateBorders(1.0, false);
35            Level.BackgroundColor = Color.Pink;
36
37            Camera.ZoomToLevel();
38         }
39
40         PhysicsObject LuoMaila( double x, double y )
41        {
42            PhysicsObject maila = PhysicsObject.CreateStaticObject( 20.0, 100.0 );
43            maila.Shape = Shapes.Rectangle;
44            maila.X = x;            maila.Y = y;
45            maila.Restitution = 1.0;
46            Add( maila );
47
48            return maila;
49         }
50
51        void AloitaPeli()
52        {
53            Vector impulssi = new Vector(500.0, 0.0);
54            pallo.Hit(impulssi);
55        }
56
57       
58
59
60            void AsetaOhjaimet()
61        {
62            Keyboard.Listen( Key.A, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 1: Liikuta mailaa ylös", maila1 );
63            Keyboard.Listen( Key.A, ButtonState.Released, PysaytaMaila, null, maila1 );
64            Keyboard.Listen( Key.Z, ButtonState.Down, LiikutaMailaaAlas, "Pelaaja 1: Liikuta mailaa alas", maila1 );
65            Keyboard.Listen( Key.Z, ButtonState.Released, PysaytaMaila, null, maila1 );
66
67            Keyboard.Listen( Key.Up, ButtonState.Down, LiikutaMailaaYlos, "Pelaaja 2: Liikuta mailaa ylös", maila2 );
68            Keyboard.Listen( Key.Up, ButtonState.Released, PysaytaMaila, null, maila2 );
69            Keyboard.Listen( Key.Down, ButtonState.Down, LiikutaMailaaAlas, "Pelaaja 2: Liikuta mailaa alas", maila2 );
70            Keyboard.Listen( Key.Down, ButtonState.Released, PysaytaMaila, null, maila2 );
71
72            Keyboard.Listen( Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet" );
73            Keyboard.Listen( Key.Escape, ButtonState.Pressed, Exit, "Poistu" );
74        }
75
76            void LiikutaMailaaYlos(PhysicsObject maila)
77            {
78                if (maila.Y <= Level.Top)
79                {
80                    maila.Velocity = Vector.Zero;
81                    return;
82                }
83
84                Vector nopeus = new Vector(0, 200);
85                maila.Velocity = nopeus;
86            }
87
88       
89        void LiikutaMailaaAlas( PhysicsObject maila )
90        {
91            Vector nopeus = new Vector(0, -200);
92            maila.Velocity = nopeus;
93        }
94
95        void PysaytaMaila( PhysicsObject maila )
96        {
97            maila.Velocity = Vector.Zero;       
98        }
99    }
100}
101
102
103
104       
105       
106
107
108
109   
110   
111
Note: See TracBrowser for help on using the repository browser.