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

Revision 5642, 8.0 KB checked in by lailrant, 7 years ago (diff)

Tasohyppelypeli melkein valmis

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