source: 2010/27/jomiilri/Pong/Peli.cs @ 1076

Revision 1076, 3.1 KB checked in by paaaanro, 10 years ago (diff)

Paranneltu Pong

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