source: 2014/30/LauriR/tesohyppelytestaus/tesohyppelytestaus/tesohyppelytestaus/tesohyppelytestaus.cs @ 5624

Revision 5624, 6.9 KB checked in by lailrant, 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 tesohyppelytestaus : PhysicsGame
10{
11
12    const double nopeus = 200;
13    const double hyppyNopeus = 750;
14    const int RUUDUN_KOKO = 40;
15
16    PlatformCharacter pelaaja1;
17
18    Image pelaajanKuva = LoadImage("kuva4");
19    Image Sieni = LoadImage("sieni");
20    Image tahtiKuva = LoadImage("tahti");
21    Image Kissa = LoadImage("kissa");
22    Image Piikit = LoadImage("spikes");
23    Image taustaKuva = LoadImage("doge");
24    Image Piikit2 = LoadImage("piikit2");
25
26    Image[] juoksukuvat = LoadImages("kuva7", "kuva6", "kuva5", "kuva4", "kuva3", "kuva2", "kuva1");
27    Image[] paikallaan = LoadImages("kuva4");
28    Image[] hyppää = LoadImages("kuva4");
29    Image[] putoaa = LoadImages("kuva7");
30
31    SoundEffect maaliAani = LoadSoundEffect("maali");
32
33
34   
35
36    public override void Begin()
37    {
38        IsFullScreen = true;
39
40        Gravity = new Vector(0, -1000);
41
42        LuoKentta();
43        LisaaNappaimet();
44
45        Camera.Follow(pelaaja1);
46        Camera.ZoomFactor = 1.2;
47        Camera.StayInLevel = true;
48    }
49
50    void LuoKentta()
51    {
52        TileMap kentta = TileMap.FromLevelAsset("kentta1");
53        kentta.SetTileMethod('#', LisaaTaso);
54        kentta.SetTileMethod('*', LisaaTahti);
55        kentta.SetTileMethod('N', LisaaPelaaja);
56        kentta.SetTileMethod('S', LisaaSieni2);
57        kentta.SetTileMethod('K', LisaaKissa);
58        kentta.SetTileMethod('P', LisaaPiikit);
59        kentta.SetTileMethod('V',LisaaPiikit2);
60        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
61        Level.CreateBorders();
62        Level.Background.Image = taustaKuva;
63        Level.Background.FitToLevel();
64    }
65
66    void LisaaTaso(Vector paikka, double leveys, double korkeus)
67    {
68        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
69        taso.Position = paikka;
70        taso.Color = Color.Black;
71        Add(taso);
72    }
73
74    void LisaaTahti(Vector paikka, double leveys, double korkeus)
75    {
76        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys * 0.5, korkeus * 0.5);
77        tahti.IgnoresCollisionResponse = true;
78        tahti.Position = paikka;
79        tahti.Image = tahtiKuva;
80        tahti.Tag = "tahti";
81        Add(tahti);
82    }
83
84    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
85    {
86        pelaaja1 = new PlatformCharacter(leveys, korkeus);
87        pelaaja1.Position = paikka;
88        pelaaja1.Mass = 4.0;
89        pelaaja1.Image = pelaajanKuva;
90        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
91        AddCollisionHandler(pelaaja1, "sieni", TormaaSieneen);
92        AddCollisionHandler(pelaaja1, "kissa", TormaaKissaan);
93        AddCollisionHandler(pelaaja1, "spikes", TormaaPiikkeihin);
94        Add(pelaaja1);
95        pelaaja1.AnimWalk = new Animation(juoksukuvat);
96        pelaaja1.AnimIdle = new Animation(paikallaan);
97        pelaaja1.AnimJump = new Animation(hyppää);
98        pelaaja1.AnimFall = new Animation(putoaa);
99
100    }
101
102    void LisaaNappaimet()
103    {
104        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
105        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");                                                           
106
107        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
108        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
109        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
110
111
112
113        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
114
115        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
116        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
117        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
118
119
120        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
121    }
122
123    void Liikuta(PlatformCharacter hahmo, double nopeus)
124    {
125        hahmo.Walk(nopeus);
126    }
127
128    void Hyppaa(PlatformCharacter hahmo, double nopeus)
129    {
130        hahmo.Jump(nopeus);
131    }
132
133    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
134    {
135        maaliAani.Play();
136        MessageDisplay.Add("Keräsit kranaatin :/");
137        tahti.Destroy();
138    }
139
140    void LisaaSieni2(Vector paikka, double leveys, double korkeus)
141    {
142        PhysicsObject sieni = PhysicsObject.CreateStaticObject(leveys * 1.0, korkeus * 1.0);
143        sieni.IgnoresCollisionResponse = true;
144        sieni.Position = paikka;
145        sieni.Image = Sieni;
146        sieni.Tag = "sieni";
147        Add(sieni);
148    }
149
150    void TormaaSieneen(PhysicsObject hahmo, PhysicsObject sieni)
151    {
152        maaliAani.Play();
153        MessageDisplay.Add("Keräsit kultaisensienen JEE :D");
154        sieni.Destroy();
155    }
156
157    void LisaaKissa(Vector paikka, double leveys, double korkeus)
158    {
159        PhysicsObject kissa = PhysicsObject.CreateStaticObject(leveys * 1.0, korkeus * 1.0);
160        kissa.IgnoresCollisionResponse = true;
161        kissa.Position = paikka;
162        kissa.Image = Kissa;
163        kissa.Tag = "kissa";
164        Add(kissa);
165
166       
167
168 
169    }
170
171    void TormaaKissaan(PhysicsObject hahmo, PhysicsObject kissa)
172    {
173        maaliAani.Play();
174        MessageDisplay.Add("oisuit kissaan hävisit pelin");
175        hahmo.Destroy();
176    }
177
178
179    void LisaaPiikit(Vector paikka, double leveys, double korkeus)
180    {
181        PhysicsObject spikes = PhysicsObject.CreateStaticObject(leveys * 1.0, korkeus * 1.0);
182        spikes.IgnoresCollisionResponse = true;
183        spikes.Position = paikka;
184        spikes.Image = Piikit;
185        spikes.Tag = "spikes";
186        Add(spikes);
187    }
188
189    void TormaaPiikkeihin(PhysicsObject hahmo, PhysicsObject spikes)
190    {
191        maaliAani.Play();
192        MessageDisplay.Add("Kuolit LÖL");
193        hahmo.Destroy();
194    }
195
196    void LisaaPiikit2(Vector paikka, double leveys, double korkeus)
197    {
198        PhysicsObject piikit2 = PhysicsObject.CreateStaticObject(leveys * 1.0, korkeus * 1.0);
199        piikit2.IgnoresCollisionResponse = true;
200        piikit2.Position = paikka;
201        piikit2.Image = Piikit2;
202        piikit2.Tag = "piikit2";
203        Add(piikit2);
204    }
205
206    IntMeter pisteLaskuri;
207
208    void LuoPistelaskuri()
209    {
210        pisteLaskuri = new IntMeter(0);
211
212        Label pisteNaytto = new Label();
213        pisteNaytto.X = Screen.Left + 100;
214        pisteNaytto.Y = Screen.Top - 100;
215        pisteNaytto.TextColor = Color.Black;
216        pisteNaytto.Color = Color.White;
217
218        pisteNaytto.BindTo(pisteLaskuri);
219        Add(pisteNaytto);
220    }
221
222
223} 
Note: See TracBrowser for help on using the repository browser.