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

Revision 701, 5.1 KB checked in by kajysail, 12 years ago (diff)

Sain ajastimen toimimaan.

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      //  HighScoreList lista = HighScoreList.LoadOrCreate( "topten.dat", 10);
16               
17        protected override void Begin()
18        {
19           
20           
21            Alku();
22           
23        }
24        void Alku()
25        {
26            LuoPallo();
27            LuoPeliHahmo();
28            AsetaOhjaimet();
29           
30
31            AddCollisionHandler(pelihahmo, KasitteleOsumama);
32
33            Level.Background.Image = LoadImage("tausta2");
34            Level.CreateBorders( 1.05, false);
35
36            ajastin = new Timer();
37            ajastin.Interval = 20;
38            ajastin.Trigger += Ajastinapu;
39
40            Add(ajastin);
41            ajastin.Reset();
42            ajastin.Start();
43
44            aikalaskuri = new Timer();
45            Add(aikalaskuri);
46            aikalaskuri.Start();
47
48            aikanaytto = new ValueDisplay();
49            aikanaytto.Text = "Aikaa kulunut: ";
50            aikanaytto.FormatDouble(1, true);
51            aikanaytto.BindTo(aikalaskuri.SecondCounter);
52            aikanaytto.X = -500;
53            aikanaytto.Y = 420;
54            aikanaytto.TextColor = Color.Red;
55            Add(aikanaytto);
56
57           
58
59            Camera.ZoomToLevel(160);
60            MessageDisplay.TextColor = Color.Red;
61           
62        }
63
64        void Ajastinapu(Timer sender)
65        {
66            LuoPallo();
67        }
68
69        void LuoPeliHahmo()
70        {
71            pelihahmo = new PhysicsObject(50.0, 50.0);
72            pelihahmo.Shape = Shapes.Rectangle;
73            pelihahmo.Image = LoadImage("Ilmapallo");
74            Add(pelihahmo);
75
76        }
77
78        void LuoPallo()
79        {
80            pallo = new PhysicsObject(100.0, 100.0);
81            pallo.Shape = Shapes.Circle;
82            pallo.X = -350;
83            pallo.Y = 390;
84            pallo.Restitution = 1.02;
85            pallo.Image = LoadImage("piikkipallo2");
86
87            Add(pallo);
88           
89
90            Vector impulssi = new Vector(400.0, 300.0);
91            pallo.Hit(impulssi);
92        }
93
94        void AsetaOhjaimet()
95        {
96            Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelihahmoYlos, "Pelaaja 2: Liikuta pelihahmoa ylös", pelihahmo);
97            Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelihahmo, null, pelihahmo);
98            Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelihahmoAlas, "Pelaaja 1: Liikuta pelihahmoa alas", pelihahmo);
99            Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelihahmo, null, pelihahmo);
100            Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelihahmoOikea, "Pelaaja 1: Liikuta pelihahmoa oikealle", pelihahmo);
101            Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelihahmo, null, pelihahmo);
102            Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelihahmoVasen, "Pelaaja 1: Liikuta pelihahmoa vasemmalle", pelihahmo);
103            Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelihahmo, null, pelihahmo);
104
105            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
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.Add("Hävisit! aloita uusi peli painamalla U:ta.");
145                aikalaskuri.Pause();
146            }
147            Explosion rajahdys = new Explosion(100);
148            rajahdys.Position = osuja.Position;
149            Add(rajahdys);
150            osuja.Destroy();           
151        }
152
153       
154
155       
156        void Lopeta()
157        {
158            MessageDisplay.Clear();
159            pelihahmo.Destroy();
160           
161
162            ClearAll();
163            Alku();                                                           
164        }
165    }
166}
Note: See TracBrowser for help on using the repository browser.