source: 2015/27/AnttiV/Tasohyppelypeli2/Tasohyppelypeli2/Tasohyppelypeli2/chase.cs @ 6601

Revision 6601, 4.2 KB checked in by misakana, 7 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 Tasohyppelypeli2 : PhysicsGame
10{
11
12    const double nopeus = 400;
13    const double hyppyNopeus = 350;
14    const int RUUDUN_KOKO = 60;
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("auto");
19    Image vihuKuva = LoadImage("vihu");
20    Image piikkiKuva = LoadImage("piikki");
21
22    SoundEffect maaliAani = LoadSoundEffect("maali");
23
24
25    public override void Begin()
26    {
27       
28
29   
30
31         Image taustaKuva = LoadImage("background-city");
32       
33
34        Gravity = new Vector(0, -1000);
35
36        LuoKentta();
37        LisaaNappaimet();
38
39        Camera.Follow(pelaaja1);
40        Camera.ZoomFactor = 1.2;
41        Camera.StayInLevel = true;
42    }
43
44    void LuoKentta()
45    {
46       
47        TileMap kentta = TileMap.FromLevelAsset("kentta1");
48        kentta.SetTileMethod('#', LisaaTaso);
49        kentta.SetTileMethod('*', LisaaVihu);
50        kentta.SetTileMethod('N', LisaaPelaaja);
51        kentta.SetTileMethod('P', LisaaPiikki);
52        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
53        Level.CreateBorders();
54    }
55
56    void LuoKentta(string kentta1);
57    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
58    {
59        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
60        taso.Position = paikka;
61        taso.Color = Color.Red;
62        Add(taso);
63        taso.Image = piikkiKuva;
64        taso.Tag = "piikki";
65    }
66
67    void LisaaTaso(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        taso.Position = paikka;
71        taso.Color = Color.Green;
72        Add(taso);
73    }
74
75    void LisaaVihu(Vector paikka, double leveys, double korkeus)
76    {
77        PhysicsObject vihu = PhysicsObject.CreateStaticObject(leveys, korkeus);
78        vihu.IgnoresCollisionResponse = true;
79        vihu.Position = paikka;
80        vihu.Image = vihuKuva;
81        vihu.Tag = "vihu";
82        Add(vihu);
83    }
84
85    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
86    {
87        pelaaja1 = new PlatformCharacter(leveys, korkeus);
88        pelaaja1.Position = paikka;
89        pelaaja1.Mass = 4.0;
90        pelaaja1.Image = pelaajanKuva;
91        AddCollisionHandler(pelaaja1, "vihu", TormaaVihuun);
92        Add(pelaaja1);
93    }
94
95    void LisaaNappaimet()
96    {
97        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
98        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
99
100        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
101        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
102        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
103
104        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
105
106        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
107        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
108        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
109
110        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
111    }
112
113    void Liikuta(PlatformCharacter hahmo, double nopeus)
114    {
115        hahmo.Walk(nopeus);
116    }
117
118    void Hyppaa(PlatformCharacter hahmo, double nopeus)
119    {
120        hahmo.Jump(nopeus);
121    }
122
123    void TormaaVihuun(PhysicsObject hahmo, PhysicsObject vihu)
124    {
125        maaliAani.Play();
126        MessageDisplay.Add("Voitit Pelin");
127        vihu.Destroy();
128        Explosion rajahdys = new Explosion(300);
129        rajahdys.Position = vihu.Position;
130        Add(rajahdys);
131        rajahdys.Speed = 350.0;
132        rajahdys.Force = 10000;
133        rajahdys.ShockwaveColor = Color.Yellow;
134        rajahdys.ShockwaveColor = new Color(255, 0, 150, 90);
135        pelaaja1.IgnoresExplosions = true;
136    }
137   
138}
Note: See TracBrowser for help on using the repository browser.