source: 2010/23/laemkaup/Pong/Peli.cs @ 1384

Revision 551, 3.5 KB checked in by paaaanro, 10 years ago (diff)

Pong-peliä mailojen liikuttelusta eteenpäin johonkin asti

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