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

Revision 6679, 5.0 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 = 650;
14    const int RUUDUN_KOKO = 60;
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("1var");
19    Image vihuKuva = LoadImage("vihu");
20    Image piikkiKuva = LoadImage("piikki");
21    Image lippuKuva = LoadImage("lippu");
22
23    SoundEffect maaliAani = LoadSoundEffect("maali");
24
25    Vector checkpoint;
26
27
28    public override void Begin()
29    {
30         Image taustaKuva = LoadImage("background-city");
31       
32
33        Gravity = new Vector(0, -1000);
34
35        LuoKentta();
36        LisaaNappaimet();
37
38        Camera.Follow(pelaaja1);
39        Camera.ZoomFactor = 1.2;
40        Camera.StayInLevel = true;
41    }
42
43    void LuoKentta()
44    {
45       
46        TileMap kentta = TileMap.FromLevelAsset("kentta1");
47        kentta.SetTileMethod('#', LisaaTaso);
48        kentta.SetTileMethod('*', LisaaVihu);
49        kentta.SetTileMethod('N', LisaaPelaaja);
50        kentta.SetTileMethod('P', LisaaPiikki);
51        kentta.SetTileMethod('C', LisaaCheck);
52        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
53        Level.CreateBorders();
54    }
55
56    void LisaaPiikki(Vector paikka, double leveys, double korkeus)
57    {
58        PhysicsObject piikki = PhysicsObject.CreateStaticObject(leveys, korkeus);
59        piikki.Position = paikka;
60        piikki.Color = Color.Red;
61        Add(piikki);
62        piikki.Image = piikkiKuva;
63        piikki.Tag = "piikki";
64
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    void LisaaCheck(Vector paikka,double leveys,double korkeus)
85{
86    PhysicsObject lippu = PhysicsObject.CreateStaticObject(leveys, korkeus*2);
87    lippu.Tag = "lippu";
88    lippu.Image = lippuKuva;
89    lippu.Position = paikka;
90    lippu.Y += korkeus*0.5;
91    lippu.IgnoresCollisionResponse = true;
92    Add(lippu);
93       
94}
95    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
96    {
97        pelaaja1 = new PlatformCharacter(leveys, korkeus);
98        pelaaja1.Position = paikka;
99        pelaaja1.Mass = 4.0;
100        pelaaja1.Image = pelaajanKuva;
101        AddCollisionHandler(pelaaja1, "vihu", TormaaVihuun);
102        Add(pelaaja1);
103        AddCollisionHandler(pelaaja1, "lippu", TormaaLippuun);
104        AddCollisionHandler(pelaaja1, "piikki", TormaaPiikkiin);
105        checkpoint = paikka;
106    }
107
108    void LisaaNappaimet()
109    {
110        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
111        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
112
113        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
114        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
115        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
116
117        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
118
119        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
120        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
121        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
122
123        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
124    }
125
126    void Liikuta(PlatformCharacter hahmo, double nopeus)
127    {
128        hahmo.Walk(nopeus);
129    }
130
131    void Hyppaa(PlatformCharacter hahmo, double nopeus)
132    {
133        hahmo.Jump(nopeus);
134    }
135
136    void TormaaVihuun(PhysicsObject hahmo, PhysicsObject vihu)
137    {
138        maaliAani.Play();
139        MessageDisplay.Add("Sinne meni!");
140        vihu.Destroy();
141        Explosion rajahdys = new Explosion(150);
142        rajahdys.Position = vihu.Position;
143        Add(rajahdys);
144        rajahdys.Speed = 350.0;
145        rajahdys.Force = 10000;
146        rajahdys.ShockwaveColor = Color.Yellow;
147        rajahdys.ShockwaveColor = new Color(255, 0, 150, 90);
148        pelaaja1.IgnoresExplosions = true;
149    }
150    void TormaaLippuun(PhysicsObject hahmo, PhysicsObject lippu)
151    {
152        checkpoint = lippu.Position;
153    }
154    void TormaaPiikkiin(PhysicsObject hahmo, PhysicsObject piikki)
155    {
156        pelaaja1.Position = checkpoint;
157
158    }
159   
160}
Note: See TracBrowser for help on using the repository browser.