source: 2010/23/lasakauh/Testi/Peli.cs @ 717

Revision 717, 8.8 KB checked in by lasakauh, 12 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6
7namespace Testi
8{
9    class Tasohyppely : PhysicsGame
10    {
11        const double nopeusEteen = 100;
12        const double nopeusTaakse = 100;
13        const double hyppyVoima = 4000;
14        const double isku = 10;
15
16        PlatformCharacter p1;
17        PlatformCharacter p2;
18
19        int hp1 = 102;
20        int hp2 = 102;
21       
22
23        protected override void Begin()
24        {
25            Level.Width = 300;
26            Level.Height = 300;
27            Camera.ZoomFactor = 2.0;
28            Camera.StayInLevel = true;
29            Gravity = new Vector(0, -1000);
30
31            luoKentta();
32            lisaaNappaimet();
33            voitto(p1, p2);
34            voitto(p2, p1);
35
36           
37         
38        }
39
40        void voitto(PlatformCharacter hahmo, PlatformCharacter voittaja)
41        {
42            if (hahmo.IsDestroyed())
43            {
44                MessageDisplay.Add(voittaja+" voitti pelin");
45            }
46           
47        }
48        void luoKentta()
49        {
50            Level.CreateBorders();
51            Level.Background.CreateGradient(Color.Black,Color.DarkBlue);
52
53            lisaaMaaTaso(0, -87);
54            lisaaPelaajat();
55            lisaap2();
56            hpbar1();
57            lisaaTaso(0, -154);
58            hpbar2();
59            hpp1(145,100);
60            hpp2(-145, 100);
61        }
62
63        void lisaaMaaTaso(double x, double y)
64        {
65            PhysicsObject taso = PhysicsObject.CreateStaticObject(302, 30);
66            taso.Image = LoadImage("taso_maa");
67            taso.X = x;
68            taso.Y = y;
69            Add(taso);
70        }
71
72        void lisaaSeina(double x,double y)
73        {
74            PhysicsObject taso = PhysicsObject.CreateStaticObject(10, 30);
75            taso.Image = LoadImage("taso_pystyseina");
76            taso.X = x;
77            taso.Y = y;
78            Add(taso);
79        }
80
81        void lisaaTaso(double x, double y)
82        {
83            PhysicsObject taso = PhysicsObject.CreateStaticObject(300, 1);
84            taso.Image = LoadImage("taso_vaakaseina");
85            taso.X = x;
86            taso.Y = y;
87            AddCollisionHandler(taso,Tuhous);
88            Add(taso);
89        }
90
91        void Tuhous(PhysicsObject taso, PhysicsObject kohde)
92        {
93            kohde.Destroy();
94            MessageDisplay.Add("Pelaaja tuhoutui");
95        }
96        void lisaaPelaajat()
97        {
98            p1 = new PlatformCharacter(10, 20);
99            p1.Mass = 6.0;
100            p1.Image = LoadImage("ninja");
101            p1.X = -140;
102            p1.Y = Level.Bottom + 100;
103            Add(p1);
104            if (hp1 < 0) { 
105                        p1.Destroy();
106                        MessageDisplay.Add("Pelaaja 2 voitti");
107                        };
108           
109        }
110
111        void lisaap2()
112        {
113            p2 = new PlatformCharacter(10, 20);
114            p2.Mass = 6.0;
115            p2.Image = LoadImage("ninja2");
116            p2.X = 140;
117            p2.Y = Level.Bottom + 100;
118            Add(p2);
119            if (hp2 < 0) {
120                p2.Destroy(); 
121            };
122           
123        }
124
125        void lisaaNappaimet()
126        {
127            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
128            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
129
130            Keyboard.Listen(Key.A, ButtonState.Down, liikutaTaakse, "Liikkuu vasemmalle", p1,nopeusTaakse);
131            Keyboard.Listen(Key.D, ButtonState.Down, liikutaEteenp1, "Liikkuu oikealle", p1,nopeusEteen);
132            Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", p1, hyppyVoima);
133            Keyboard.Listen(Key.S, ButtonState.Pressed, iske,"iskee");
134            Keyboard.Listen(Key.S, ButtonState.Released, lp_isku, "lopettaaiskun");
135
136            Keyboard.Listen(Key.Left, ButtonState.Down, liikutaTaakse, "Liikkuu vasemmalle", p2, nopeusTaakse);
137            Keyboard.Listen(Key.Right, ButtonState.Down, liikutaEteenp2, "Liikkuu oikealle", p2, nopeusEteen);
138            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", p2, hyppyVoima);
139            Keyboard.Listen(Key.Down, ButtonState.Pressed, iske2, "iskee");
140            Keyboard.Listen(Key.Down, ButtonState.Released, lp_isku2, "lopettaa iskun");
141           
142        }
143
144     
145        void liikutaEteenp1(PlatformCharacter hahmo, double nopeus)
146        {
147           
148            Image[]walkKuvat = LoadImages("ninja_walkr1", "ninja_walkr2");
149            hahmo.RightWalkingAnimation = new Animation(walkKuvat);
150            Image[] walklKuvat = LoadImages("ninja_walkl1", "ninja_walkl2");
151            hahmo.LeftWalkingAnimation = new Animation(walklKuvat);
152            hahmo.Walk(nopeus);
153        }
154
155        void liikutaEteenp2(PlatformCharacter hahmo, double nopeus)
156        {
157
158            Image[] walkKuvat = LoadImages("ninja2_walkr1", "ninja2_walkr2");
159            hahmo.RightWalkingAnimation = new Animation(walkKuvat);
160            Image[] walklKuvat = LoadImages("ninja2_walkl1", "ninja2_walkl2");
161            hahmo.LeftWalkingAnimation = new Animation(walklKuvat);
162            hahmo.Walk(nopeus);
163        }
164
165        void liikutaTaakse(PlatformCharacter hahmo, double nopeus)
166        {
167            hahmo.Walk(-nopeus);
168           
169           
170        }
171
172        void hyppaa(PlatformCharacter hahmo, double voima)
173        {
174            hahmo.Jump(voima);
175        }
176
177        void hpbar1()
178        {
179            PhysicsObject hpbar1 = PhysicsObject.CreateStaticObject(102, 20);
180            hpbar1.Image = LoadImage("hpbar1");
181            hpbar1.X=-95;
182            hpbar1.Y=140;
183            Add(hpbar1);
184           
185        }
186        void hpbar2()
187        {
188            PhysicsObject hpbar2 = PhysicsObject.CreateStaticObject(102, 20);
189            hpbar2.Image = LoadImage("hpbar2");
190            hpbar2.X = 95;
191            hpbar2.Y = 140;
192            Add(hpbar2);
193        }
194        void hpp1(double x, double hp1)
195        {
196            for (int i = 1; i < hp1; i++)
197            {
198                PhysicsObject hpp1 = PhysicsObject.CreateStaticObject(1, 8.5);
199                hpp1.Shape = Shapes.Rectangle;
200                hpp1.Color = Color.Green;
201                hpp1.X = -146+i;
202                hpp1.Y = 144.8;
203                Add(hpp1);
204               
205            }
206        }
207        void hpp2(double x, double hp2)
208        {
209            for (int i = 1; i < hp2; i++)
210            {
211                PhysicsObject hpp2 = PhysicsObject.CreateStaticObject(1, 8.5);
212                hpp2.Shape = Shapes.Rectangle;
213                hpp2.Color = Color.Green;
214                hpp2.X = 146-i;
215                hpp2.Y = 144.8;
216                Add(hpp2);
217            }
218        }
219
220        void iske()
221        {
222            if (p1.FacingDirection == Direction.Right)
223            {
224                Image[] iskuKuvat = LoadImages("a1", "a2", "a3", "a4");
225                p1.Animation = new Animation(iskuKuvat);
226                p1.Animation.Start();
227                p1.Animation.FPS = 20;
228            }
229            if (p1.FacingDirection == Direction.Left)
230            {
231                Image[] iskuKuvat = LoadImages("a1_l", "a2_l", "a3_l", "a4_l");
232                p1.Animation = new Animation(iskuKuvat);
233                p1.Animation.Start();
234                p1.Animation.FPS = 20;
235            }
236            hp2 = hp2 - 10;         
237        }
238
239        void iske2()   
240        {
241            if (p2.FacingDirection == Direction.Left)
242            {
243                Image[] p2Kuvat = LoadImages("b1", "b2", "b3", "b4");
244                p2.Animation = new Animation(p2Kuvat);
245                p2.Animation.Start();
246                p2.Animation.FPS = 20;
247                hp1 = hp1 - 10;
248            }
249            if (p2.FacingDirection == Direction.Right)
250            {
251                Image[] p22Kuvat = LoadImages("b1_l", "b2_l", "b3_l", "b4_l");
252                p2.Animation = new Animation(p22Kuvat);
253                p2.Animation.Start();
254                p2.Animation.FPS = 20;
255                hp1 = hp1 - 10;
256            }
257        }
258
259        void lp_isku()
260        {
261            if (p1.FacingDirection == Direction.Right)
262            {
263                p1.Image = LoadImage("ninja");
264            }
265            if (p1.FacingDirection == Direction.Left)
266            {
267                p1.Image = LoadImage("ninja_l");
268            }
269        }
270
271        void lp_isku2()
272        {
273            if (p2.FacingDirection == Direction.Left)
274            {
275                p2.Image = LoadImage("ninja2");
276            }
277            if (p2.FacingDirection == Direction.Right)
278            {
279                p2.Image = LoadImage("ninja2_l");
280            }
281        }
282    }
283}
Note: See TracBrowser for help on using the repository browser.