source: 2010/30/janiemit/pong/Peli.cs @ 1295

Revision 1295, 3.5 KB checked in by janiemit, 9 years ago (diff)

Kaikki laskuriin asti

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    PhysicsObject maila1;
11    PhysicsObject maila2;
12    IntMeter pelaajan1Pisteet;
13    IntMeter pelaajan2Pisteet;
14
15    PhysicsObject pallo;
16    protected override void Begin()
17    {
18        LuoKentta();
19        AsetaOhjaimet();
20        AloitaPeli();
21        LisaaLaskurit();
22
23
24        Vector impulssi = new Vector(500.0, 0.0);
25        pallo.Hit(impulssi);
26       
27       
28
29    }
30    void LuoKentta()
31    {
32        pallo = new PhysicsObject(80.0, 3.0);
33        pallo.Shape = Shapes.Circle;
34        Add(pallo);
35        pallo.X = -200.0;
36        pallo.Y = -30.0;
37        Level.CreateBorders(1.0, false);
38        pallo.Restitution = 1.001;
39        maila1 = LuoMaila(Level.Left + 20.0, 0.0);
40        maila2 = LuoMaila(Level.Right - 20.0, 0.0);
41
42
43
44        Level.BackgroundColor = Color.Black;
45        Camera.ZoomToLevel();
46       
47
48    }
49    void AloitaPeli()
50    {
51        Vector impulssi = new Vector(500.0, 0.0);
52        pallo.Hit(impulssi);
53
54    }
55    PhysicsObject LuoMaila(double x, double y)
56    {
57        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0);
58        maila.Shape = Shapes.Rectangle;
59        maila.X = x;
60        maila.Y = y;
61        maila.Restitution = 1.0;
62        Add(maila);
63        return maila;
64
65    }
66
67   
68    void AsetaOhjaimet()
69    {
70        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
71        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlos);
72        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
73        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas);
74        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
75
76        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlos);
77        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
78        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa alas", maila2, nopeusAlas);
79        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
80
81        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
82
83
84
85    }
86    void AsetaNopeus(PhysicsObject maila, Vector nopeus)
87    {
88        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom))
89        {
90            maila.Velocity = Vector.Zero;
91            return;
92        }
93        if ((nopeus.Y > 0) && (maila.Top > Level.Top))
94        {
95            maila.Velocity = Vector.Zero;
96            return;
97        }
98
99        maila.Velocity = nopeus;
100    }
101    void LisaaLaskurit()
102    {
103        pelaajan1Pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
104        pelaajan2Pisteet = LuoPisteLaskuri(Screen.Right - 100.0, Screen.Top - 100.0);
105
106    }
107    IntMeter LuoPisteLaskuri(double x, double y)
108    {
109        IntMeter laskuri = new IntMeter(0);
110        laskuri.MaxValue = 10;
111        Label naytto = new Label();
112        naytto.BindTo(laskuri);
113        naytto.X = x;
114        naytto.Y = y;
115        naytto.TextColor = Color.White;
116        Add(naytto);
117        return laskuri;
118
119    }
120
121
122
123
124
125}
Note: See TracBrowser for help on using the repository browser.