source: 2015/26/RonjaT/Pong/Pong/Pong/Pong.cs @ 6166

Revision 6166, 4.0 KB checked in by jotapoti, 5 years ago (diff)

piste laskuri

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    Vector nopeusPysähdyksissä = new Vector(0, 0);
14
15    PhysicsObject pallo;
16    PhysicsObject maila1;
17    PhysicsObject maila2;
18
19    IntMeter pelaajan1pisteet;
20    IntMeter pelaajan2pisteet;
21
22    public override void Begin()
23    {
24        LuoKentta();
25        AsetaOhjaimet();
26
27        LisaaLaskurit();
28        AloitaPeli();
29
30    }
31    void LuoKentta()
32    {
33        pallo = new PhysicsObject(40.0, 40.0);
34
35        pallo.Shape = Shape.Circle;
36        pallo.X = -200.0;
37        pallo.Y = 0.0;
38        pallo.Restitution = 1.0;
39        Add(pallo);
40
41        void KasittelePallonTormays(PhysicsObject pallo, PhysicsObject kohde)
42        {
43        }
44
45        maila1 = LuoMaila(Level.Left + 20.0, 0.0);
46        maila2 = LuoMaila(Level.Right - 20.0, 0.0);
47
48
49       PhysicsObject vasenReuna = Level.CreateLeftBorder();
50       vasenReuna.Restution = 1.0;
51       vasenReuna.IsVisible = flase;
52
53       PhysicsObject
54
55        Level.Background.Color = Color.Black;
56        Camera.ZoomToLevel();
57    }
58
59    void AloitaPeli()
60    {
61        Vector impulssi = new Vector(500.0, 0.0);
62        pallo.Hit(impulssi);
63    }
64
65
66
67    PhysicsObject LuoMaila(double x, double y)
68    {
69        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0);
70        maila.Shape = Shape.Rectangle;
71        maila.X = x;
72        maila.Y = y;
73        maila.Restitution = 1.0;
74        Add(maila);
75        return maila;
76    }
77
78    void AsetaOhjaimet()
79    {
80        Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa ylös", maila1, nopeusYlös);
81        Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, maila1, nopeusPysähdyksissä);
82        Keyboard.Listen(Key.Z, ButtonState.Down, AsetaNopeus, "Pelaaja 1: Liikuta mailaa alas", maila1, nopeusAlas);
83        Keyboard.Listen(Key.Z, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
84
85        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaa ylös", maila2, nopeusYlös);
86        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, nopeusPysähdyksissä);
87        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja 2: Liikuta mailaaalas", maila2, nopeusAlas);
88        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
89
90        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
91        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä phjeet");
92    }
93
94
95    void AsetaNopeus(PhysicsObject maila, Vector nopeus)
96    {
97        if ((nopeus.Y < 0) && (maila.Bottom < Level.Bottom))
98        {
99            maila.Velocity = Vector.Zero;
100            return;
101        }
102        if ((nopeus.Y > 0) && (maila.Top > Level.Top))
103        {
104            maila.Velocity = Vector.Zero;
105            return;
106        }
107        maila.Velocity = nopeus;
108    }
109
110
111    void LisaaLaskurit()
112    {
113        pelaajan1pisteet = LuoPisteLaskuri(Screen.Left + 100.0, Screen.Top - 100.0);
114        pelaajan2pisteet = LuoPisteLaskuri(Screen.Right - 100, Screen.Top - 100.0);
115    }
116
117    IntMeter LuoPisteLaskuri(double x, double y)
118    {
119        IntMeter laskuri = new IntMeter(0);
120        laskuri.MaxValue = 10;
121
122        Label naytto = new Label();
123        naytto.BindTo(laskuri);
124        naytto.X = x;
125        naytto.Y = y;
126        naytto.TextColor = Color.LightGreen;
127        naytto.BorderColor = Level.Background.Color;
128        naytto.Color = Level.Background.Color;
129        Add(naytto);
130
131        return laskuri;
132    }
133
134
135
136
137
138}
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202 
Note: See TracBrowser for help on using the repository browser.