source: 2012/23/SamuH/Pong/Pong/Pong/Pong.cs @ 2766

Revision 2766, 2.8 KB checked in by anlakane, 8 years ago (diff)

Pongpeli (keskeneräinen)

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
12    Vector nopeusYlös = new Vector(0, 400);
13    Vector nopeusAlas = new Vector(0, -400);
14
15    PhysicsObject pallo;
16
17    PhysicsObject maila1;
18    PhysicsObject maila2;
19
20    public override void Begin()
21    {
22        LuoKentta();
23        AloitaPeli();
24        AsetaOhjaimet();
25
26    }
27
28    void LuoKentta()
29    {
30        pallo = new PhysicsObject(49, 49);
31        pallo.Shape = Shape.Circle;
32        pallo.Color = Color.Yellow;
33        pallo.Restitution = 1.0;
34        pallo.X = -120;
35        pallo.Y = 80;
36
37        Add(pallo);
38
39        maila1 = LuoMaila(Level.Left + 20.0, 0.0);
40        maila2 = LuoMaila(Level.Right - 20.0, 0.0);
41
42        Level.BackgroundColor = Color.DarkGray;
43        Level.CreateBorders(1.0, false);
44
45        Camera.ZoomToLevel();
46
47        MessageDisplay.TextColor = Color.LightGreen;
48
49    }
50    void AloitaPeli()
51    {
52        Vector impulssi = new Vector(500.0, 0.0);
53        pallo.Hit(impulssi);
54
55
56
57    }
58
59    PhysicsObject LuoMaila(double x, double y)
60    {
61
62        PhysicsObject maila = PhysicsObject.CreateStaticObject(20.0, 100.0);
63        maila.Shape = Shape.Rectangle;
64        maila.Color = Color.DarkOrange;
65        maila.X = x;
66        maila.Y = y;
67        maila.Restitution = 1.0;
68        Add(maila);
69
70        return maila;
71
72    }
73
74    void AsetaOhjaimet()
75    {
76
77        Keyboard.Listen(Key.W, ButtonState.Down, AsetaNopeus, "Pelaaja1, liikuta mailaa ylös.", maila1, nopeusYlös);
78        Keyboard.Listen(Key.W, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
79        Keyboard.Listen(Key.S, ButtonState.Down, AsetaNopeus, "Pelaaja1, liikuta mailaa alas.", maila1, nopeusAlas);
80        Keyboard.Listen(Key.S, ButtonState.Released, AsetaNopeus, null, maila1, Vector.Zero);
81
82        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja2, liikuta mailaa ylös.", maila2, nopeusYlös);
83        Keyboard.Listen(Key.Up, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
84        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja2, liikuta mailaa alas.", maila2, nopeusAlas);
85        Keyboard.Listen(Key.Down, ButtonState.Released, AsetaNopeus, null, maila2, Vector.Zero);
86
87        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet.");
88        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu.");
89
90    }
91
92    void AsetaNopeus(PhysicsObject maila, Vector nopeus)
93    {
94       
95        if (maila.Top > Level.Top)
96       
97        {
98
99            maila.Velocity = Vector.Zero;
100            return;
101        }
102       
103        maila.Velocity = nopeus;
104   
105    }
106} 
107   
108   
109   
110
Note: See TracBrowser for help on using the repository browser.