source: 2010/23/kajysail/Ping Pong/Peli.cs @ 715

Revision 715, 5.1 KB checked in by kajysail, 11 years ago (diff)

Pintä säätöä tehty.

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6namespace Ping_Pong
7{
8    public class Peli : PhysicsGame
9    {
10        PhysicsObject pallo;
11        PhysicsObject pelihahmo;
12        Timer ajastin;
13        Timer aikalaskuri;
14        ValueDisplay aikanaytto;       
15               
16        protected override void Begin()
17        {
18           
19           
20            Alku();
21           
22        }
23        void Alku()
24        {
25            LuoPallo();
26            LuoPeliHahmo();
27            AsetaOhjaimet();
28           
29
30            AddCollisionHandler(pelihahmo, KasitteleOsumama);
31
32            Level.Background.Image = LoadImage("tausta2");
33            Level.CreateBorders( 1.03, false);
34
35            ajastin = new Timer();
36            ajastin.Interval = 15;
37            ajastin.Trigger += Ajastinapu;
38
39            Add(ajastin);
40            ajastin.Reset();
41           
42
43            aikalaskuri = new Timer();
44            Add(aikalaskuri);
45            aikalaskuri.Start();
46
47            ajastin.Start();
48
49            aikanaytto = new ValueDisplay();
50            aikanaytto.Text = "Aikaa kulunut: ";
51            aikanaytto.FormatDouble(1, true);
52            aikanaytto.BindTo(aikalaskuri.SecondCounter);
53            aikanaytto.X = -500;
54            aikanaytto.Y = 420;
55           
56            Add(aikanaytto);
57
58           
59
60            Camera.ZoomToLevel(160);
61            MessageDisplay.TextColor = Color.Red;
62           
63        }
64
65        void Ajastinapu(Timer sender)
66        {
67            LuoPallo();
68        }
69
70        void LuoPeliHahmo()
71        {
72            pelihahmo = new PhysicsObject(50.0, 50.0);
73            pelihahmo.Shape = Shapes.Rectangle;
74            pelihahmo.Image = LoadImage("Ilmapallo");
75            Add(pelihahmo);
76
77        }
78
79        void LuoPallo()
80        {
81            pallo = new PhysicsObject(100.0, 100.0);
82            pallo.Shape = Shapes.Circle;
83            pallo.X = -350;
84            pallo.Y = 390;
85            pallo.Restitution = 1.03;
86            pallo.Image = LoadImage("piikkipallo2");           
87
88            Add(pallo);
89           
90
91            Vector impulssi = new Vector(400.0, 300.0);
92            pallo.Hit(impulssi);
93        }
94
95        void AsetaOhjaimet()
96        {
97            Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelihahmoYlos, "Pelaaja 2: Liikuta pelihahmoa ylös", pelihahmo);
98            Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelihahmo, null, pelihahmo);
99            Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelihahmoAlas, "Pelaaja 1: Liikuta pelihahmoa alas", pelihahmo);
100            Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelihahmo, null, pelihahmo);
101            Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelihahmoOikea, "Pelaaja 1: Liikuta pelihahmoa oikealle", pelihahmo);
102            Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelihahmo, null, pelihahmo);
103            Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelihahmoVasen, "Pelaaja 1: Liikuta pelihahmoa vasemmalle", pelihahmo);
104            Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelihahmo, null, pelihahmo);
105         
106            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
107            Keyboard.Listen(Key.U, ButtonState.Pressed, Lopeta, "Uusi peli");
108        }
109
110        void LiikutaPelihahmoYlos(PhysicsObject pelihahmo)
111        {
112            Vector nopeus = new Vector(0, 500);
113            pelihahmo.Velocity = nopeus;
114        }
115
116        void LiikutaPelihahmoAlas(PhysicsObject pelihahmo)
117        {
118            Vector nopeus = new Vector(0, -500);
119            pelihahmo.Velocity = nopeus;
120        }
121
122        void LiikutaPelihahmoVasen(PhysicsObject pelihahmo)
123        {
124            Vector nopeus = new Vector(-500, 0);
125            pelihahmo.Velocity = nopeus;
126        }
127
128        void LiikutaPelihahmoOikea(PhysicsObject pelihahmo)
129        {
130            Vector nopeus = new Vector(500, 0);
131            pelihahmo.Velocity = nopeus;
132        }
133
134        void PysaytaPelihahmo(PhysicsObject pelihahmo)
135        {
136            pelihahmo.Velocity = Vector.Zero;
137        }
138
139        void KasitteleOsumama(PhysicsObject osuja, PhysicsObject osuttu)
140        {
141            if (osuja == pelihahmo)
142            {
143                MessageDisplay.Clear();
144                MessageDisplay.X = -300;
145                MessageDisplay.Y = 20;             
146                MessageDisplay.Add("Hävisit! aloita uusi peli painamalla U:ta.");             
147                aikalaskuri.Pause();                           
148            }
149            Explosion rajahdys = new Explosion(100);
150            rajahdys.Position = osuja.Position;
151            Add(rajahdys);
152            osuja.Destroy();           
153        }
154
155       
156
157       
158        void Lopeta()
159        {
160            MessageDisplay.Clear();
161            pelihahmo.Destroy();
162           
163
164            ClearAll();
165            Alku();                                                           
166        }
167    }
168}
Note: See TracBrowser for help on using the repository browser.