source: 2014/24/TomasC/pong/pong/pong/pong.cs @ 4920

Revision 4920, 4.1 KB checked in by anlakane, 9 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 pong : PhysicsGame
10{
11    Vector nopeusYlös = new Vector(0, 200);
12    Vector nopeusAlas = new Vector(0, -200);
13    PhysicsObject pallo;
14    PhysicsObject maila1;
15    PhysicsObject maila2;
16    public override void Begin()
17    {
18        Luokentta();
19        asetaohjaimet();
20        aloitapeli();
21        LisääLaskurit();
22
23
24
25        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
26        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
27    }
28    void Luokentta()
29    {
30        pallo = new PhysicsObject(40, 40);
31        pallo.Shape = Shape.Circle;
32        pallo.Color = Color.Turquoise;
33        pallo.X = -200.0;
34        pallo.Y = -0.0;
35        Add(pallo);
36
37        maila1 = LuoMaila(Level.Left + 20.0, 0.0);
38        maila2 = LuoMaila(Level.Right - 20.0, 0.0);
39
40
41       PhysicsObject vasenReuna = Level.CreateLeftBorder();
42        vasenReuna.Restitution = 1.0;
43        vasenReuna.IsVisible = false;
44        PhysicsObject oikeaReuna = Level.CreateRightBorder();
45        oikeaReuna.Restitution = 1.0;
46        oikeaReuna.IsVisible = false;
47        PhysicsObject ala = Level.CreateBottomBorder();
48        ala.Restitution = 1.0;
49        ala.IsVisible = false;
50        PhysicsObject ylä = Level.CreateTopBorder();
51        ylä.Restitution = 1.0;
52        ylä.IsVisible = false;
53        pallo.Restitution = 1.0;
54        Level.Background.Color = Color.Black;
55        Camera.ZoomToLevel();
56    }
57    void aloitapeli()
58    {
59        Vector impulssi = new Vector(500.0, 0.0);
60        pallo.Hit(impulssi);
61    }
62
63    void asetaohjaimet()
64    {
65
66
67        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, " Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlös);
68        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
69        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, " Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusAlas);
70        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
71
72        Keyboard.Listen(Key.O, ButtonState.Down, AsetaNopeus, " Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlös);
73        Keyboard.Listen(Key.O, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
74        Keyboard.Listen(Key.L, ButtonState.Down, AsetaNopeus, " Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusAlas);
75        Keyboard.Listen(Key.L, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
76
77        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
78        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
79    }
80    void AsetaNopeus(PhysicsObject maila, Vector nopeus)
81    {
82        if (( nopeus.Y < 0) && (maila.Bottom < Level.Bottom)) 
83        {
84        maila.Velocity = Vector.Zero;
85        return;
86        }
87        if ((nopeus.Y > 0) && (maila.Top > Level.Top))
88        {
89            maila.Velocity = Vector.Zero;
90            return;
91
92        }
93        maila.Velocity = nopeus;
94    }
95    PhysicsObject LuoMaila(double x, double y)
96    {
97        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0);
98        maila.Shape = Shape.Rectangle;
99        maila.X = x;
100        maila.Y = y;
101        maila.Restitution = 1.0;
102        Add(maila);
103        return maila;
104    }
105
106    void LisääLaskurit();
107     {
108
109     pelaajan1Pisteet = LuoPisteLaskuri (Screen.Left + 100.0, Screen.Top - 100.0);
110     pelaajan2Pisteet = LuoPisteLaskuri (Screen.Right - 100.0, Screen.Top - 100.0);
111
112     }
113     IntMeter LuoPisteLaskuri(double x, double y)
114     {
115      interfaceMeter laskuri = new Intmeter (0);
116      laskuri.Maxvalve = 10;
117      Label naytto = new Label ();
118      naytto.X = x;
119      naytto.y = y;
120      naytto.Textcolor = color.white
121      naytto.Bordercolor = Level.Backround.Color;
122      naytto.color = Level.Backround.Color;
123      Add (naytto);
124      return laskuri;
125
126
127}
Note: See TracBrowser for help on using the repository browser.