source: 2012/24/TatuS/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Stickman Fight.cs @ 3004

Revision 3004, 7.6 KB checked in by tavekasa, 9 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 Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("norsu");
18    Image tahtiKuva = LoadImage("tahti");
19    Image kuva = LoadImage("pelaaja1");
20    SoundEffect maaliAani = LoadSoundEffect("maali");
21
22    PlatformCharacter pelaaja2;
23    Image pojankuva = LoadImage("poika");
24    List<Label> valikonKohdat;
25    public override void Begin()
26    {
27        Valikko();
28
29
30        Gravity = new Vector(0, -1000);
31
32        luoKentta();
33        lisaaNappaimet();
34
35
36        Camera.Follow(pelaaja1);
37        Camera.ZoomFactor = 2;
38
39        Camera.StayInLevel = true;
40
41
42
43    }
44    void Valikko()
45    {
46        ClearAll();
47
48        Level.BackgroundColor = Color.Blue;
49
50        valikonKohdat = new List<Label>();
51
52        Label kohta1 = new Label("Aloita Uusi Peli");
53        kohta1.Position = new Vector(0, 40);
54        valikonKohdat.Add(kohta1);
55
56        Label kohta2 = new Label("Lopeta Peli");
57        kohta2.Position = new Vector(0, -40);
58        valikonKohdat.Add(kohta2);
59
60        foreach (Label valikonKohta in valikonKohdat)
61        {
62            Add(valikonKohta);
63        }
64
65        Mouse.ListenOn(kohta1, MouseButton.Left, ButtonState.Pressed, AloitaPeli, null);
66        Mouse.ListenOn(kohta2, MouseButton.Left, ButtonState.Pressed, Exit, null);
67
68        Mouse.IsCursorVisible = true;
69        Mouse.ListenMovement(1.0, ValikossaLiikkuminen, null);
70        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "");
71
72
73    }
74
75    void ValikossaLiikkuminen(AnalogState hiirenTila)
76    {
77        foreach (Label kohta in valikonKohdat)
78        {
79            if (Mouse.IsCursorOn(kohta))
80            {
81                kohta.TextColor = Color.Red;
82            }
83            else
84            {
85                kohta.TextColor = Color.Black;
86            }
87
88        }
89    }
90
91    void AloitaPeli()
92    {
93        ClearAll();
94        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Valikko, "Palaa Valikkoon");
95    }
96
97
98
99
100
101
102
103
104    void luoKentta()
105    {
106        TileMap kentta = TileMap.FromLevelAsset("kentta1");
107        kentta.SetTileMethod('#', lisaaTaso);
108        kentta.SetTileMethod('*', lisaaTahti);
109        kentta.SetTileMethod('N', lisaaPelaaja);
110        kentta.SetTileMethod('P', lisaapelaaja2);
111        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
112        Level.CreateBorders();
113        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
114    }
115
116
117
118    void lisaaTaso(Vector paikka, double leveys, double korkeus)
119    {
120        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
121        taso.Position = paikka;
122        taso.Color = Color.Green;
123        Add(taso);
124    }
125
126    void lisaaTahti(Vector paikka, double leveys, double korkeus)
127    {
128        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
129        tahti.IgnoresCollisionResponse = true;
130        tahti.Position = paikka;
131        tahti.Image = tahtiKuva;
132        tahti.Tag = "tahti";
133        Add(tahti);
134    }
135
136    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
137    {
138        pelaaja1 = new PlatformCharacter(leveys, korkeus);
139        pelaaja1.Position = paikka;
140        pelaaja1.Mass = 10.0;
141        pelaaja1.Image = kuva;
142        AddCollisionHandler(pelaaja1, kasittelePelaajanTormays);
143        pelaaja1.Weapon = new AssaultRifle(18, 5);
144        Add(pelaaja1);
145    }
146
147    void lisaapelaaja2(Vector Kohde, double leveys, double korkeus)
148    {
149        pelaaja2 = new PlatformCharacter(leveys, korkeus);
150        pelaaja2.Position = Kohde;
151        pelaaja2.Mass = 0.05;
152        pelaaja2.Image = pojankuva;
153        pelaaja2.Tag = "pelaaja2";
154        pelaaja2.Weapon = new AssaultRifle(18, 5);
155        Add(pelaaja2);
156
157        FollowerBrain seuraajanAivot = new FollowerBrain();
158        seuraajanAivot.Target = pelaaja1;
159        seuraajanAivot.Speed = 100;
160        seuraajanAivot.StopWhenTargetClose = false;
161        seuraajanAivot.TargetFollowDistance = 50;
162        seuraajanAivot.FollowAlways = true;
163        seuraajanAivot.Active = true;
164        pelaaja2.Brain = seuraajanAivot;
165
166
167    }
168
169    void AmmusOsui(PhysicsObject Ammus, PhysicsObject Kohde)
170    {
171
172        Explosion rajahdys = new Explosion(50);
173        rajahdys.Position = Ammus.Position;
174        Ammus.Destroy();
175    }
176
177    void kentta()
178    {
179        Camera.Follow(pelaaja1, pelaaja2);
180        Camera.ZoomFactor = 2.0;
181        Camera.StayInLevel = true;
182    }
183
184
185    void AmmuAseella()
186    {
187        PhysicsObject ammus = pelaaja1.Weapon.Shoot();
188        if (ammus != null)
189        {
190            ammus.Size *= 0.5;
191        }
192    }
193    void TahtaaYlos()
194    {
195        if (pelaaja1.FacingDirection == Direction.Right)
196        {
197            pelaaja1.Weapon.Angle += Angle.FromDegrees(6);
198        }
199        if (pelaaja1.FacingDirection == Direction.Left)
200        {
201            pelaaja1.Weapon.Angle += Angle.FromDegrees(-6);
202        }
203    }
204
205    void TahtaaAlas()
206    {
207        if (pelaaja1.FacingDirection == Direction.Right)
208        {
209            pelaaja1.Weapon.Angle += Angle.FromDegrees(-6);
210        }
211        if (pelaaja1.FacingDirection == Direction.Left)
212        {
213            pelaaja1.Weapon.Angle += Angle.FromDegrees(6);
214        }
215    }
216
217
218    void KasitteleVihollinenKuoli(PhysicsObject Ammus, PhysicsObject kohde)
219    {
220        if (kohde.Tag.ToString() == "pelaaja2")
221        {
222            kohde.Destroy();
223        }
224
225    }
226
227    void JokuTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
228    {
229    }
230
231
232
233
234    void lisaaNappaimet()
235    {
236        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
237        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
238        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
239
240        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
241        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
242        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
243        Keyboard.Listen(Key.Space, ButtonState.Pressed, AmmuAseella, "Ammu");
244        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
245
246        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
247        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
248        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
249
250        Keyboard.Listen(Key.W, ButtonState.Down, TahtaaYlos, "Tähtää ylös rynnäkkökiväärillä");
251        Keyboard.Listen(Key.S, ButtonState.Down, TahtaaAlas, "Tähtää alas rynnäkkökiväärillä");
252
253
254        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
255    }
256
257    void liikuta(PlatformCharacter hahmo, double nopeus)
258    {
259        hahmo.Walk(nopeus);
260    }
261
262    void hyppaa(PlatformCharacter hahmo, double nopeus)
263    {
264        hahmo.Jump(nopeus);
265    }
266
267    void kasittelePelaajanTormays(PhysicsObject hahmo, PhysicsObject kohde)
268    {
269        if (kohde.Tag.ToString() == "pelaaja2")
270        {
271
272
273        }
274
275    }
276
277
278
279}
Note: See TracBrowser for help on using the repository browser.