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

Revision 680, 7.7 KB checked in by lasakauh, 10 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, liikutaEteen, "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, liikutaEteen, "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            lisaaGamePadNappaimet(ControllerOne, p1, iske, lp_isku);
144            lisaaGamePadNappaimet(ControllerTwo, p2, iske2, lp_isku2);
145        }
146
147        void lisaaGamePadNappaimet(GamePad controller, PlatformCharacter hahmo, Handler ikse,Handler end)
148        {
149            controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
150            controller.Listen(Button.DPadLeft, ButtonState.Down, liikutaTaakse, "Pelaaja liikkuu vasemmalle", hahmo, nopeusTaakse);
151            controller.Listen(Button.DPadRight, ButtonState.Down, liikutaEteen, "Pelaaja liikkuu oikealle", hahmo, nopeusEteen);
152            controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", hahmo, hyppyVoima);
153            controller.Listen(Button.B, ButtonState.Pressed, ikse, "iskee");
154            controller.Listen(Button.B, ButtonState.Released, end, "lopettaa iskun");
155            }
156
157        void liikutaEteen(PlatformCharacter hahmo, double nopeus)
158        {
159            hahmo.Walk(nopeus);
160        }
161
162        void liikutaTaakse(PlatformCharacter hahmo, double nopeus)
163        {
164            hahmo.Walk(-nopeus);
165           
166           
167        }
168
169        void hyppaa(PlatformCharacter hahmo, double voima)
170        {
171            hahmo.Jump(voima);
172        }
173
174        void hpbar1()
175        {
176            PhysicsObject hpbar1 = PhysicsObject.CreateStaticObject(102, 20);
177            hpbar1.Image = LoadImage("hpbar1");
178            hpbar1.X=-95;
179            hpbar1.Y=140;
180            Add(hpbar1);
181           
182        }
183        void hpbar2()
184        {
185            PhysicsObject hpbar2 = PhysicsObject.CreateStaticObject(102, 20);
186            hpbar2.Image = LoadImage("hpbar2");
187            hpbar2.X = 95;
188            hpbar2.Y = 140;
189            Add(hpbar2);
190        }
191        void hpp1(double x, double hp1)
192        {
193            for (int i = 1; i < hp1; i++)
194            {
195                PhysicsObject hpp1 = PhysicsObject.CreateStaticObject(1, 8.5);
196                hpp1.Shape = Shapes.Rectangle;
197                hpp1.Color = Color.Green;
198                hpp1.X = -146+i;
199                hpp1.Y = 144.8;
200                Add(hpp1);
201            }
202        }
203        void hpp2(double x, double hp2)
204        {
205            for (int i = 1; i < hp2; i++)
206            {
207                PhysicsObject hpp2 = PhysicsObject.CreateStaticObject(1, 8.5);
208                hpp2.Shape = Shapes.Rectangle;
209                hpp2.Color = Color.Green;
210                hpp2.X = 146-i;
211                hpp2.Y = 144.8;
212                Add(hpp2);
213            }
214        }
215
216        void iske()
217        {
218            Image[]iskuKuvat = LoadImages("a1", "a2", "a3", "a4");
219            p1.Animation = new Animation(iskuKuvat);
220            p1.Animation.Start();
221            p1.Animation.FPS = 20;
222            hp2 = hp2-10;
223           
224        }
225
226        void iske2()
227        {
228            Image[]p2Kuvat = LoadImages("b1", "b2", "b3", "b4");
229            p2.Animation = new Animation(p2Kuvat);
230            p2.Animation.Start();
231            p2.Animation.FPS = 20;
232            hp1 = hp1 - 10;
233        }
234
235        void lp_isku()
236        {
237            p1.Image = LoadImage("ninja");
238        }
239
240        void lp_isku2()
241        {
242            p2.Image = LoadImage("ninja2");
243        }
244    }
245}
Note: See TracBrowser for help on using the repository browser.