source: 2016/30/KasimirP/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 8243

Revision 8243, 9.6 KB checked in by kaspalmu, 5 years ago (diff)
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 = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter Vihollinen;
17
18    PhysicsObject lentokone;
19
20    Image pelaajanKuva = LoadImage("Dat_boi1");
21    Image tahtiKuva = LoadImage("leaf");
22    Image VihollisenKuva = LoadImage("pepexd");
23    Image Veri = LoadImage("veri");
24    Image Palikka = LoadImage("Palikka");
25    Image Shrek = LoadImage("Shrekxd");
26    Image kek = LoadImage("art");
27    Image lava = LoadImage("laava");
28    Image Lentsikka = LoadImage("yee");
29    private Image[] ukkelinKavely = LoadImages("Dat_boi1", "Dat_boi2", "Dat_boi3", "Dat_boi4", "Dat_boi5");
30
31    Color[] colors =  { Color.Red, Color.Green, Color.Blue, Color.Yellow, Color.Pink };
32    int index = 0;
33
34    bool SuperVoima = false, alkanut = false;
35
36    SoundEffect maaliAani = LoadSoundEffect("Powerup5");
37    SoundEffect voimaLoppuu = LoadSoundEffect("Powerup8"); 
38
39    public override void Begin()
40
41    {
42        Valikko();
43       
44    }
45
46   
47
48    void LuoKentta()
49    {
50        Gravity = new Vector(0, -1000);
51       
52        TileMap kentta = TileMap.FromLevelAsset("kentta1");
53        kentta.SetTileMethod('#', LisaaTaso);
54        kentta.SetTileMethod('*', LisaaTahti);
55        kentta.SetTileMethod('N', LisaaPelaaja);
56        kentta.SetTileMethod('X', LisaaVihollinen);
57        kentta.SetTileMethod('K', LisaaShrek);
58        kentta.SetTileMethod('L', LisaaLaava);
59        kentta.SetTileMethod('F', LisaaLentovihu);
60        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
61
62        LisaaNappaimet();
63        Level.CreateBorders();
64        Camera.Follow(pelaaja1);
65        Camera.ZoomFactor = 1.2;
66        Camera.StayInLevel = true;
67        SmoothTextures = false;
68        Window.Fullscreen = true;
69        MediaPlayer.Play("musa");
70        MediaPlayer.IsRepeating = true;
71        MediaPlayer.Volume = 0.5;
72
73        //Level.Background.CreateGradient(Color.White, Color.LimeGreen);
74        Level.Background.Image = kek;
75        Level.Background.FitToLevel();
76        Level.Background.TextureWrapSize = new Vector(3, 1);
77
78        FollowerBrain BRAIN = new FollowerBrain(pelaaja1);
79        BRAIN.Speed = 1000;
80        BRAIN.DistanceFar = 100;
81        BRAIN.FarBrain = new RandomMoverBrain();
82        //lentokone.Brain = BRAIN;
83        alkanut = true;
84    }
85
86    void LisaaTaso(Vector paikka, double leveys, double korkeus)
87    {
88        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
89        taso.Position = paikka;
90        taso.Image = Palikka;
91       
92        //taso.Color = Color.Green;
93        Add(taso);
94    }
95
96    void LisaaLaava(Vector paikka, double leveys, double korkeus)
97    {
98        PhysicsObject Laava = PhysicsObject.CreateStaticObject(leveys, korkeus);
99        Laava.Position = paikka;
100        Laava.Image = lava;
101        Laava.Tag = "Laava";
102        Add(Laava);
103       
104       
105    }
106
107    void LisaaTahti(Vector paikka, double leveys, double korkeus)
108    {
109        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
110        tahti.IgnoresCollisionResponse = true;
111        tahti.Position = paikka;
112        tahti.Image = tahtiKuva;
113        tahti.Tag = "tahti";
114       
115        Add(tahti);
116    }
117
118    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
119    {
120        pelaaja1 = new PlatformCharacter(leveys, korkeus, Shape.Circle);
121        pelaaja1.Position = paikka;
122        pelaaja1.Mass = 4.0;
123        pelaaja1.Image = pelaajanKuva;
124        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
125        AddCollisionHandler(pelaaja1, "Vihollinen", TormaaViholliseen);
126        AddCollisionHandler(pelaaja1, "Shrek", TormaaShrekiin);
127        AddCollisionHandler(pelaaja1, "Laava", TormaaLaavaan);
128        AddCollisionHandler(pelaaja1, "Tahti", TormaaTahteen);
129       
130        Add(pelaaja1);
131        pelaaja1.Animation = new Animation(ukkelinKavely);
132        pelaaja1.Animation.Start();
133
134
135
136    }
137
138    void LisaaVihollinen(Vector paikka, double leveys, double korkeus)
139
140    {
141        Vihollinen = new PlatformCharacter(30.0, 30.0);
142
143        Vihollinen.Position = paikka;
144        Vihollinen.Mass = 4.0;
145        Vihollinen.Image = VihollisenKuva;
146        Vihollinen.Tag = "Vihollinen";
147
148        Add(Vihollinen);
149
150        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
151        tasoAivot.Speed = 100;
152        tasoAivot.FallsOffPlatforms = false;
153        Vihollinen.Brain = tasoAivot;
154
155   
156
157
158    }
159   
160    void LisaaLentovihu(Vector paikka, double leveys, double korkeus)
161    {
162        lentokone = new PhysicsObject(Lentsikka);
163        lentokone.Width /= 10;
164        lentokone.Height /= 10;
165
166        lentokone.Position = paikka;
167        lentokone.IgnoresGravity = false;
168        Add(lentokone); 
169    }
170
171    void LisaaShrek(Vector paikka, double leveys, double korkeus)
172    {
173       
174        PhysicsObject s = PhysicsObject.CreateStaticObject(60,80);
175        s.Image = Shrek;
176        s.Position = paikka;
177        s.Bottom = paikka.Y - korkeus / 2;
178        s.Tag = "Shrek";
179
180        Add(s);
181    }
182
183    //void LisaaVihollinen(Vector paikka, double leveys,
184
185    void LisaaNappaimet()
186    {
187        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
188        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
189
190        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
191        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
192        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
193        Keyboard.Listen(Key.R, ButtonState.Pressed, AloitaAlusta, "Aloita alusta");
194
195        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
196
197        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
198        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
199        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
200       
201
202        /*Keyboard.Listen(Key.Right, ButtonState.Down, pelaaja1.Animation.Start, "");
203        Keyboard.Listen(Key.Right, ButtonState.Released, pelaaja1.Animation.Stop, "");*/
204
205        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
206    }
207
208    protected override void Update(Time time)
209    {
210        base.Update(time);
211
212        if (!alkanut)
213        {
214            return;
215        }
216
217        if (pelaaja1.Velocity.X == 0)   
218        {
219            pelaaja1.Animation.Stop();
220        }
221        else if (!pelaaja1.Animation.IsPlaying)
222        {
223            pelaaja1.Animation.Start();
224        }
225
226        /*Level.Background.Color = colors[index];
227
228        if (index + 1 >= colors.Length)
229        {
230            index = 0;
231        }
232        else
233        {
234            index++;
235        }*/
236    }
237
238    void Liikuta(PlatformCharacter hahmo, double nopeus)
239    {
240        hahmo.Walk(nopeus);
241    }
242
243    void Hyppaa(PlatformCharacter hahmo, double nopeus)
244    {
245        hahmo.Jump(nopeus);
246    }
247
248    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
249    {
250        maaliAani.Play();
251        Supervoima();
252        MessageDisplay.Add("Keräsit superlehden xd! Voit nyt tappaa Pepejä xd");
253        tahti.Destroy();
254    }
255    //kekeskafjajs
256    void TormaaViholliseen(PhysicsObject a, PhysicsObject b)
257    {
258        if (SuperVoima == true)
259        {
260            ExplosionSystem rajahdusSysteemi = new ExplosionSystem(VihollisenKuva, 50);
261
262            Add(rajahdusSysteemi);
263
264            rajahdusSysteemi.AddEffect(b.Position, 50);
265            b.Destroy();
266        }
267        else
268        {
269            ExplosionSystem rajahdusSysteemi = new ExplosionSystem(Veri, 50);
270
271            Add(rajahdusSysteemi);
272
273            rajahdusSysteemi.AddEffect(a.Position, 50);
274            a.Destroy();
275
276            MediaPlayer.Play("loppumusa");
277            MediaPlayer.Volume = 2;
278        }
279    }
280
281    void TormaaShrekiin(PhysicsObject a, PhysicsObject b)
282    {
283        ExplosionSystem rajahdusSysteemi = new ExplosionSystem(Veri, 50);
284
285        Add(rajahdusSysteemi);
286
287        rajahdusSysteemi.AddEffect(a.Position, 50);
288        a.Destroy();
289
290        MediaPlayer.Play("loppumusa");
291    }
292
293    void TormaaLaavaan(PhysicsObject a, PhysicsObject b)
294    {
295        ExplosionSystem rajahdusSysteemi = new ExplosionSystem(Veri, 50);
296
297        Add(rajahdusSysteemi);
298
299        rajahdusSysteemi.AddEffect(a.Position, 50);
300        a.Destroy();
301
302        MediaPlayer.Play("loppumusa");
303    }
304
305    void Supervoima()
306    {
307        SuperVoima = true;
308        Timer.SingleShot(7, LopetaSuperVoima);
309    }
310
311    void LopetaSuperVoima ()
312    {
313        MessageDisplay.Add("Supervoima loppui xdddd");
314        voimaLoppuu.Play();
315        SuperVoima = false;
316    }   
317
318    void Valikko()
319    {
320        MultiSelectWindow alkuValikko = new MultiSelectWindow("pelin alkuvalikko", "Aloita peli", "Lopeta :D");
321        alkuValikko.AddItemHandler(0, LuoKentta);
322        alkuValikko.AddItemHandler(1, Exit);
323        Add(alkuValikko);
324        Mouse.IsCursorVisible = true;
325    }
326    void AloitaAlusta()
327    {
328        ClearAll();
329        Valikko();
330    }
331
332}
Note: See TracBrowser for help on using the repository browser.