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

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