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

Revision 674, 7.2 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        //int hp1 = 100;
19        //int hp2 = 100;
20       
21
22        protected override void Begin()
23        {
24            Level.Width = 300;
25            Level.Height = 300;
26            Camera.ZoomFactor = 2.0;
27            Camera.StayInLevel = true;
28            Gravity = new Vector(0, -1000);
29
30            luoKentta();
31            lisaaNappaimet();
32           
33
34        }
35
36        void luoKentta()
37        {
38            Level.CreateBorders();
39            Level.Background.CreateGradient(Color.Black,Color.DarkBlue);
40
41            lisaaMaaTaso(0, -87);
42            lisaaPelaajat();
43            lisaap2();
44            hpbar1();
45            lisaaTaso(0, -154);
46            hpbar2();
47            hpp1(145,100);
48            hpp2(-145, 100);
49        }
50
51        void lisaaMaaTaso(double x, double y)
52        {
53            PhysicsObject taso = PhysicsObject.CreateStaticObject(302, 30);
54            taso.Image = LoadImage("taso_maa");
55            taso.X = x;
56            taso.Y = y;
57            Add(taso);
58        }
59
60        void lisaaSeina(double x,double y)
61        {
62            PhysicsObject taso = PhysicsObject.CreateStaticObject(10, 30);
63            taso.Image = LoadImage("taso_pystyseina");
64            taso.X = x;
65            taso.Y = y;
66            Add(taso);
67        }
68
69        void lisaaTaso(double x, double y)
70        {
71            PhysicsObject taso = PhysicsObject.CreateStaticObject(300, 1);
72            taso.Image = LoadImage("taso_vaakaseina");
73            taso.X = x;
74            taso.Y = y;
75            AddCollisionHandler(taso,Tuhous);
76            Add(taso);
77        }
78
79        void Tuhous(PhysicsObject taso, PhysicsObject kohde)
80        {
81            kohde.Destroy();
82            MessageDisplay.Add("Pelaaja tuhoutui");
83        }
84        void lisaaPelaajat()
85        {
86            p1 = new PlatformCharacter(10, 20);
87            p1.Mass = 6.0;
88            //Animation("p1_ani",65,false);
89            p1.Image = LoadImage("ninja");
90            //p1.Animation = LoadImage("p1_ani");
91            p1.X = -140;
92            p1.Y = Level.Bottom + 100;
93            Add(p1);
94           
95
96        }
97
98        void lisaap2()
99        {
100            p2 = new PlatformCharacter(10, 20);
101            p2.Mass = 6.0;
102            p2.Image = LoadImage("ninja2");
103            p2.X = 140;
104            p2.Y = Level.Bottom + 100;
105            Add(p2);
106           
107        }
108
109        void lisaaNappaimet()
110        {
111            Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
112            Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
113
114            Keyboard.Listen(Key.A, ButtonState.Down, liikutaTaakse, "Liikkuu vasemmalle", p1,nopeusTaakse);
115            Keyboard.Listen(Key.D, ButtonState.Down, liikutaEteen, "Liikkuu oikealle", p1,nopeusEteen);
116            Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", p1, hyppyVoima);
117            Keyboard.Listen(Key.S, ButtonState.Pressed, iske,"iskee");
118            Keyboard.Listen(Key.S, ButtonState.Released, lp_isku, "lopettaaiskun");
119
120            Keyboard.Listen(Key.Left, ButtonState.Down, liikutaTaakse, "Liikkuu vasemmalle", p2, nopeusTaakse);
121            Keyboard.Listen(Key.Right, ButtonState.Down, liikutaEteen, "Liikkuu oikealle", p2, nopeusEteen);
122            Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Hyppää", p2, hyppyVoima);
123            Keyboard.Listen(Key.Down, ButtonState.Pressed, iske2, "iskee");
124            Keyboard.Listen(Key.Down, ButtonState.Released, lp_isku2, "lopettaa iskun");
125           
126
127            lisaaGamePadNappaimet(ControllerOne, p1, iske, lp_isku);
128            lisaaGamePadNappaimet(ControllerTwo, p2, iske2, lp_isku2);
129        }
130
131        void lisaaGamePadNappaimet(GamePad controller, PlatformCharacter hahmo, Handler ikse,Handler end)
132        {
133            controller.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
134            controller.Listen(Button.DPadLeft, ButtonState.Down, liikutaTaakse, "Pelaaja liikkuu vasemmalle", hahmo, nopeusTaakse);
135            controller.Listen(Button.DPadRight, ButtonState.Down, liikutaEteen, "Pelaaja liikkuu oikealle", hahmo, nopeusEteen);
136            controller.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", hahmo, hyppyVoima);
137            controller.Listen(Button.B, ButtonState.Pressed, ikse, "iskee");
138            controller.Listen(Button.B, ButtonState.Released, end, "lopettaa iskun");
139            }
140
141        void liikutaEteen(PlatformCharacter hahmo, double nopeus)
142        {
143            hahmo.Walk(nopeus);
144        }
145
146        void liikutaTaakse(PlatformCharacter hahmo, double nopeus)
147        {
148            hahmo.Walk(-nopeus);
149           
150           
151        }
152
153        void hyppaa(PlatformCharacter hahmo, double voima)
154        {
155            hahmo.Jump(voima);
156        }
157
158        void hpbar1()
159        {
160            PhysicsObject hpbar1 = PhysicsObject.CreateStaticObject(102, 20);
161            hpbar1.Image = LoadImage("hpbar1");
162            hpbar1.X=-95;
163            hpbar1.Y=140;
164            Add(hpbar1);
165           
166        }
167        void hpbar2()
168        {
169            PhysicsObject hpbar2 = PhysicsObject.CreateStaticObject(102, 20);
170            hpbar2.Image = LoadImage("hpbar2");
171            hpbar2.X = 95;
172            hpbar2.Y = 140;
173            Add(hpbar2);
174        }
175        void hpp1(double x, double hp1)
176        {
177            for (int i = 1; i < 102; i++)
178            {
179                PhysicsObject hpp1 = PhysicsObject.CreateStaticObject(1, 8.5);
180                hpp1.Shape = Shapes.Rectangle;
181                hpp1.Color = Color.Green;
182                hpp1.X = -146+i;
183                hpp1.Y = 144.8;
184                Add(hpp1);
185            }
186        }
187        void hpp2(double x, double hp2)
188        {
189            for (int i = 1; i < 102; i++)
190            {
191                PhysicsObject hpp2 = PhysicsObject.CreateStaticObject(1, 8.5);
192                hpp2.Shape = Shapes.Rectangle;
193                hpp2.Color = Color.Green;
194                hpp2.X = 146-i;
195                hpp2.Y = 144.8;
196                Add(hpp2);
197            }
198        }
199
200        void iske()
201        {
202            Image[]iskuKuvat = LoadImages("a1", "a2", "a3", "a4");
203            p1.Animation = new Animation(iskuKuvat);
204            p1.Animation.Start();
205            p1.Animation.FPS = 20;
206           
207        }
208
209        void iske2()
210        {
211            Image[]p2Kuvat = LoadImages("b1", "b2", "b3", "b4");
212            p2.Animation = new Animation(p2Kuvat);
213            p2.Animation.Start();
214            p2.Animation.FPS = 20;
215        }
216
217        void lp_isku()
218        {
219            p1.Image = LoadImage("ninja");
220        }
221
222        void lp_isku2()
223        {
224            p2.Image = LoadImage("ninja2");
225        }
226    }
227}
Note: See TracBrowser for help on using the repository browser.