source: 2017/31/JuuseH/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 9377

Revision 9377, 8.0 KB checked in by npo17_81, 23 months ago (diff)

uusi vihollinen ja "släbejä", linna kesken

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 = 425;
13    const int RUUDUN_KOKO = 40;
14
15    Pelaaja pelaaja1;
16
17    Image pelaajanKuva = LoadImage("viikinki");
18    Image palikkakuva = LoadImage("maa");
19    Image palikkakuva2 = LoadImage("puu");
20    Image taustakuva = LoadImage("tausta");
21    Image palikkakuva3 = LoadImage("piikit");
22    Image vihollinenkuva = LoadImage("pahis");
23    Image palikkakuva4 = LoadImage("kivi");
24    Image palikkakuva6 = LoadImage("kivipiikit");
25
26
27    public override void Begin()
28    {
29        Gravity = new Vector(0, -1000);
30
31        LuoKentta();
32        LisaaNappaimet();
33
34
35        Camera.StayInLevel = true;
36        Camera.Follow(pelaaja1);
37
38        Level.Background.TileToLevel();
39
40    }
41
42    void LuoKentta()
43    {
44        TileMap kentta = TileMap.FromLevelAsset("kentta1");
45
46        kentta.SetTileMethod('#', Lisaapalikka1);
47        kentta.SetTileMethod('N', LisaaPelaaja);
48        kentta.SetTileMethod('M', Lisaapalikka2);
49        kentta.SetTileMethod('A', Lisaapalikka3);
50        kentta.SetTileMethod('V', LisaaVihollinen);
51        kentta.SetTileMethod('K', Lisaapalikka4);
52        kentta.SetTileMethod('P', Lisaapalikka5);
53        kentta.SetTileMethod('R', Lisaapalikka6);
54        kentta.SetTileMethod('J', LisaaVihollinen2);
55
56
57        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
58        Level.CreateBorders();
59        Level.Background.Image = taustakuva;
60    }
61
62
63
64
65
66    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
67    {
68        pelaaja1 = new Pelaaja(leveys, korkeus);
69        pelaaja1.Position = paikka;
70        pelaaja1.Mass = 4.0;
71        pelaaja1.Image = pelaajanKuva;
72
73        AddCollisionHandler(pelaaja1, "vihu", Tormays);
74        AddCollisionHandler(pelaaja1, "piikki", Kuole);
75
76        Add(pelaaja1);
77    }
78    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
79    {
80        Vihu vihollinen = new Vihu(leveys, korkeus);
81        vihollinen.Position = paikka;
82        vihollinen.Mass = 4.5;
83        vihollinen.Image = vihollinenkuva;
84        vihollinen.Tag = "vihu";
85        Add(vihollinen);
86
87        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
88        tasoAivot.Speed = 15;
89
90        vihollinen.Brain = tasoAivot;
91
92    }
93    void LisaaVihollinen2(Vector paikka, double leveys, double korkeus)
94    {
95        Vihu vihollinen2 = new Vihu(leveys, korkeus);
96        vihollinen2.Position = paikka;
97        vihollinen2.Mass = 4.5;
98        vihollinen2.Image = vihollinenkuva;
99        vihollinen2.Tag = "vihu";
100
101        AssaultRifle vihollinen2Ase = new AssaultRifle(10, 10);
102        vihollinen2Ase.ProjectileCollision = AmmusOsui;
103
104        vihollinen2.Weapon = vihollinen2Ase;
105        Timer aika = new Timer();
106        aika.Interval = 1.5;
107        aika.Timeout += delegate {
108            vihollinen2.Turn(Direction.Left);
109            vihollinen2Ase.Shoot();
110        };
111        aika.Start();
112
113        vihollinen2.Elamalaskuri.LowerLimit += delegate
114        {
115            aika.Stop();
116
117        };
118
119       
120        Add(vihollinen2);
121    }
122    void AmmusOsui(PhysicsObject ammus, PhysicsObject kohde)
123    {
124        ammus.Destroy();
125    }
126    void Tormays(PhysicsObject pelaaja, PhysicsObject vihollinen)
127    {
128        int pMaxMaara = 200;
129
130        ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("veri"), pMaxMaara);
131        rajahdys.MinScale = 2.0;
132        rajahdys.MaxScale = 10.0;
133        rajahdys.MinLifetime = 0.3;
134        rajahdys.MaxLifetime = 0.6;
135        rajahdys.MinAcceleration = 0.2;
136        rajahdys.MaxAcceleration = 0.8;
137
138
139        Add(rajahdys);
140
141        double x = pelaaja.X;
142        double y = pelaaja.Y;
143        int pMaara = 50;
144        // "Käynnistetään" räjähdys
145        rajahdys.AddEffect(x, y, pMaara);
146        if (pelaaja.Bottom >= vihollinen.Top)
147        {
148
149            (vihollinen as Vihu).Elamalaskuri.AddValue(-1);
150            return;
151        }
152        if (vihollinen.Tag.Equals("piikki"))
153        {
154            pelaaja.Destroy();
155        }
156        (pelaaja as Pelaaja).Elamalaskuri.AddValue(-1);
157
158
159    }
160
161    void Kuole(PhysicsObject pelaaja, PhysicsObject kohde)
162    {
163
164
165        int pMaxMaara = 200;
166
167        ExplosionSystem rajahdys = new ExplosionSystem(LoadImage("veri"), pMaxMaara);
168        rajahdys.MinScale = 2.0;
169        rajahdys.MaxScale = 10.0;
170        rajahdys.MinLifetime = 0.3;
171        rajahdys.MaxLifetime = 0.6;
172        rajahdys.MinAcceleration = 0.2;
173        rajahdys.MaxAcceleration = 0.8;
174
175
176        Add(rajahdys);
177
178        double x = pelaaja.X;
179        double y = pelaaja.Y;
180        int pMaara = 50;
181        // "Käynnistetään" räjähdys
182        rajahdys.AddEffect(x, y, pMaara);
183        if (kohde.Tag.Equals("piikki"))
184        {
185            pelaaja.Destroy();
186        }
187
188
189
190
191    }
192    void LisaaNappaimet()
193    {
194        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
195        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
196
197        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
198        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
199        Keyboard.Listen(Key.Space, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
200
201        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
202
203
204
205        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
206        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
207        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
208
209
210    }
211
212    void Liikuta(PlatformCharacter hahmo, double nopeus)
213    {
214        hahmo.Walk(nopeus);
215    }
216
217    void Hyppaa(PlatformCharacter hahmo, double nopeus)
218    {
219        hahmo.Jump(nopeus);
220    }
221
222    void Lisaapalikka1(Vector paikka, double leveys, double korkeus)
223    {
224        PhysicsObject palikka1 = new PhysicsObject(50.0, 50.0);
225        palikka1.Position = paikka;
226        palikka1.Mass = 4.0;
227        palikka1.Image = palikkakuva;
228
229        Add(palikka1);
230    }
231    void Lisaapalikka2(Vector paikka, double leveys, double korkeus)
232    {
233        PhysicsObject palikka2 = PhysicsObject.CreateStaticObject(40.0, 15.0);
234        palikka2.Position = paikka += new Vector(0, 8);
235
236        palikka2.Image = palikkakuva2;
237
238        Add(palikka2);
239    }
240    void Lisaapalikka3(Vector paikka, double leveys, double korkeus)
241    {
242        PhysicsObject palikka3 = PhysicsObject.CreateStaticObject(40.0, 33.0);
243        palikka3.Position = paikka += new Vector(-0, 2);
244
245        palikka3.Image = palikkakuva3;
246        palikka3.Tag = "piikki";
247        Add(palikka3);
248    }
249    void Lisaapalikka4(Vector paikka, double leveys, double korkeus)
250    {
251        PhysicsObject palikka4 = PhysicsObject.CreateStaticObject(50.0, 50.0);
252        palikka4.Position = paikka;
253
254        palikka4.Image = palikkakuva4;
255
256        Add(palikka4);
257    }
258    void Lisaapalikka5(Vector paikka, double leveys, double korkeus)
259    {
260        PhysicsObject palikka5 = PhysicsObject.CreateStaticObject(50.0, 20.0);
261        palikka5.Position = paikka;
262        palikka5.Position = paikka += new Vector(5, 2);
263        palikka5.Y = palikka5.Y + 20;
264        palikka5.Image = palikkakuva4;
265       
266        Add(palikka5);
267    }
268    void Lisaapalikka6(Vector paikka, double leveys, double korkeus)
269    {
270        PhysicsObject palikka6 = PhysicsObject.CreateStaticObject(40.0, 30.0);
271        palikka6.Position = paikka;
272        palikka6.Position = paikka += new Vector(0, 0);
273        palikka6.Tag = "piikki";
274        palikka6.Image = palikkakuva6;
275
276        Add(palikka6);
277    }
278}
Note: See TracBrowser for help on using the repository browser.