source: 2012/24/PyryL/RageFight/RageFight/RageFight/RageFight.cs @ 2960

Revision 2960, 9.0 KB checked in by pyjuella, 8 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class RageFight : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter pelaaja2;
17
18    Image norsu = LoadImage("norsu");
19    Image tahtiKuva = LoadImage("tahti");
20    Image pelaaja = LoadImage("LOL1");
21    Image muurikuva = LoadImage("muuri");
22    Image paikallaanVasemmalle = LoadImage("LOL1");
23    Image paikallaanOikealle;
24    Image koneEhja = LoadImage("kone1");
25    Image koneRikki = LoadImage("kone2");
26    Image grass = LoadImage("taso");
27
28
29    Image[] kavelyVasemmalle = LoadImages("LOL2", "LOL3", "LOL4");
30    Image[] kavelyOikealle;
31    Image[] potku = LoadImages("LOLpotku3", "LOLpotku", "LOLpotku2");
32    Image[] potkuPeilattu;
33    Image[] rage = LoadImages("rage","rage2");
34
35
36
37    SoundEffect maaliAani = LoadSoundEffect("maali");
38
39
40    public override void Begin()
41    {
42        Gravity = new Vector(0, -1000);
43
44        paikallaanOikealle = Image.Mirror(paikallaanVasemmalle);
45        kavelyOikealle = Image.Mirror(kavelyVasemmalle);
46
47
48
49
50
51        luoKentta();
52        lisaaNappaimet();
53
54        Camera.Follow(pelaaja1);
55        Camera.ZoomFactor = 5;
56        Camera.StayInLevel = true;
57    }
58
59    void luoKentta()
60    {
61        TileMap kentta = TileMap.FromFile("kentta1.txt");
62        kentta.SetTileMethod('#', lisaaTaso);
63        kentta.SetTileMethod('=', lisaaMuuri);
64        kentta.SetTileMethod('*', lisaaTahti);
65        kentta.SetTileMethod('N', lisaaPelaaja);
66        kentta.SetTileMethod('M', lisaaPelaaja2);
67        kentta.SetTileMethod('K', luoKone);
68        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
69        Level.CreateBorders();
70        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
71    }
72
73    void lisaaTaso(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        taso.Position = paikka;
77        taso.Color = Color.Green;
78        taso.Image = grass;
79        Add(taso);
80    }
81
82    void luoKone(Vector paikka, double leveys, double korkeus)
83    {
84        PhysicsObject kone = PhysicsObject.CreateStaticObject(leveys, korkeus);
85        kone.Position = paikka;
86        kone.Image = koneEhja;
87        Add(kone);
88    }
89
90    void lisaaMuuri(Vector paikka, double leveys, double korkeus)
91    {
92        PhysicsObject muuri = PhysicsObject.CreateStaticObject(leveys, korkeus);
93        muuri.Position = paikka;
94        muuri.Color = Color.Gray;
95        muuri.Image = muurikuva;
96        Add(muuri);
97
98    }
99    void lisaaTahti(Vector paikka, double leveys, double korkeus)
100    {
101        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
102        tahti.IgnoresCollisionResponse = true;
103        tahti.Position = paikka;
104        tahti.Image = tahtiKuva;
105        tahti.Tag = "tahti";
106        Add(tahti);
107    }
108
109    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
110    {
111        pelaaja1 = new PlatformCharacter(leveys, korkeus);
112        pelaaja1.Position = paikka;
113        pelaaja1.Mass = 4.0;
114        pelaaja1.Image = pelaaja;
115        pelaaja1.Tag = pelaaja1;
116        AddCollisionHandler(pelaaja1, kasittelePelaajanTormays);
117        Add(pelaaja1,-1);
118
119
120        pelaaja1.LeftIdleAnimation = new Animation(paikallaanVasemmalle);
121        pelaaja1.RightIdleAnimation = new Animation(paikallaanOikealle);
122
123        pelaaja1.LeftWalkingAnimation = new Animation(kavelyVasemmalle);
124        pelaaja1.RightWalkingAnimation = new Animation(kavelyOikealle);
125
126
127
128
129    }
130
131    void lisaaPelaaja2(Vector paikka, double leveys, double korkeus)
132    {
133        pelaaja2 = new PlatformCharacter(leveys, korkeus);
134        pelaaja2.Position = paikka;
135        pelaaja2.Mass = 4.0;
136        pelaaja2.Image = pelaaja;
137        pelaaja2.Tag = pelaaja2;
138        AddCollisionHandler(pelaaja2, kasittelePelaajanTormays);
139        Add(pelaaja2);
140
141        AddCollisionHandler(pelaaja2, pelaaja1, PelaajatTormaavat);
142
143        pelaaja2.LeftIdleAnimation = new Animation(paikallaanVasemmalle);
144        pelaaja2.RightIdleAnimation = new Animation(paikallaanOikealle);
145
146        pelaaja2.LeftWalkingAnimation = new Animation(kavelyVasemmalle);
147        pelaaja2.RightWalkingAnimation = new Animation(kavelyOikealle);
148    }
149
150
151    void lisaaNappaimet()
152    {
153        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
154        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Poistu pelistä");
155        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
156
157        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
158        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
159        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
160        Keyboard.Listen(Key.Down, ButtonState.Pressed, lyo, "Pelaaja potkaisee");
161
162        Keyboard.Listen(Key.A, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja2, -nopeus);
163        Keyboard.Listen(Key.D, ButtonState.Down, liikuta, "Liikkuu oikealle", pelaaja2, nopeus);
164        Keyboard.Listen(Key.W, ButtonState.Pressed, hyppaa, "Hyppää", pelaaja2, hyppyNopeus);
165        Keyboard.Listen(Key.S, ButtonState.Released, lyo2, "Pelaaja2 potkaisee");
166
167
168
169        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Poistu pelistä");
170
171        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
172        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
173        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
174
175        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
176    }
177
178    void liikuta(PlatformCharacter hahmo, double nopeus)
179    {
180        hahmo.Walk(nopeus);
181    }
182
183    void hyppaa(PlatformCharacter hahmo, double nopeus)
184    {
185        hahmo.Jump(nopeus);
186    }
187
188    void kasittelePelaajanTormays(PhysicsObject hahmo, PhysicsObject kohde)
189    {
190        if (kohde.Tag.ToString() == "tahti")
191        {
192            maaliAani.Play();
193            MessageDisplay.Add("Keräsit tähden!");
194            kohde.Destroy();
195        }
196    }
197
198    void lyo()
199    {
200        // tähän sellaiset mitä tehään joka tapauksessa (oltiin likkeessä tai ei)
201
202        if (pelaaja1.Velocity.X > 10)
203        {
204            potkuPeilattu = Image.Mirror(potku);
205            pelaaja1.Animation = new Animation(potkuPeilattu);
206            pelaaja1.Animation.Start(1);
207
208
209
210
211           
212            return;
213        }
214
215        if (pelaaja1.Velocity.X < -10)
216        {
217            pelaaja1.Animation = new Animation(potku);
218            pelaaja1.Animation.Start(1);
219            return;
220        }
221
222
223
224            // tänne muut tapaukset
225
226
227            potkuPeilattu = Image.Mirror(potku);
228            Animation l = pelaaja1.LeftIdleAnimation;
229            Animation r = pelaaja1.RightIdleAnimation;
230            pelaaja1.LeftIdleAnimation = new Animation(potku);
231            pelaaja1.RightIdleAnimation = new Animation(potkuPeilattu);
232            pelaaja1.LeftIdleAnimation.Played += delegate
233            {
234                pelaaja1.LeftIdleAnimation = l;
235                pelaaja1.RightIdleAnimation = r;
236            };
237            pelaaja1.RightIdleAnimation.Played += delegate
238            {
239                pelaaja1.LeftIdleAnimation = l;
240                pelaaja1.RightIdleAnimation = r;
241            };
242        }
243   
244
245    void lyo2()
246    {
247        potkuPeilattu = Image.Mirror(potku);
248        Animation l = pelaaja2.LeftIdleAnimation;
249        Animation r = pelaaja2.RightIdleAnimation;
250        pelaaja2.LeftIdleAnimation = new Animation(potku);
251        pelaaja2.RightIdleAnimation = new Animation(potkuPeilattu);
252        pelaaja2.LeftIdleAnimation.Played += delegate
253        {
254            pelaaja2.LeftIdleAnimation = l;
255            pelaaja2.RightIdleAnimation = r;
256        };
257        pelaaja2.RightIdleAnimation.Played += delegate
258        {
259            pelaaja2.LeftIdleAnimation = l;
260            pelaaja2.RightIdleAnimation = r;
261        };
262        //pelaaja2.Animation = new Animation(potku);
263        //pelaaja2.Animation.Start(1);
264        //pelaaja2.Animation.FPS = 7;
265
266
267    }
268
269    void PelaajatTormaavat(IPhysicsObject tormaaja, IPhysicsObject kohde)
270    {
271        Keyboard.Listen(Key.Down, ButtonState.Pressed, osuu2, "Pelaaja potkaisee");
272        Keyboard.Listen(Key.S, ButtonState.Pressed, osuu1, "Pelaaja potkaisee");
273
274    }
275
276    void osuu2()
277    {
278        pelaaja2.Animation = new Animation(rage);
279        pelaaja2.Animation.Start(10);
280    }
281
282    void osuu1()
283    {
284        pelaaja1.Animation = new Animation(rage);
285        pelaaja1.Animation.Start(10);
286    }
287}
Note: See TracBrowser for help on using the repository browser.