source: 2016/26/EemeliT/Tasohyppelypeli5000/Tasohyppelypeli5000/Tasohyppelypeli5000/Tasohyppelypeli5000.cs @ 7607

Revision 7607, 7.7 KB checked in by joeetoiv, 3 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 Tasohyppelypeli5000 : PhysicsGame
10{ 
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image pelaajanKuva = LoadImage("Bunny");
18    Image tahtiKuva = LoadImage("Salama");
19    Image ruohonkuva = LoadImage("Ruoho");
20    Image multakuva = LoadImage("Multa");
21    Image piikkienkuva = LoadImage("Piikit");
22    Image puunrunko = LoadImage("Puu");
23    Image lehdenkuva = LoadImage("Lehdet2");
24    Image kivenkuva = LoadImage("Kivi");
25    Image Palikka = LoadImage("Leijupalikka");
26    Image maali = LoadImage("Maali");//Hexakoodi: FF0000
27    public override void Begin()
28    {
29        IsFullScreen = true;
30        Gravity = new Vector(0, -1000);
31        SmoothTextures = false;
32
33        LuoAlkuvalikko();
34       
35    }
36
37    void LuoKentta()
38    {
39        ColorTileMap kentta = ColorTileMap.FromLevelAsset("Kentta");
40        kentta.SetTileMethod(Color.FromHexCode("000000"), LisaaTaso, kivenkuva);
41        kentta.SetTileMethod(Color.FromHexCode("FF6A00"), LisaaTahti);
42        kentta.SetTileMethod(Color.FromHexCode("A0A0A0"), LisaaPelaaja);
43        kentta.SetTileMethod(Color.FromHexCode("7F3F3F"), LuoLapimentava, multakuva);//multa
44        kentta.SetTileMethod(Color.FromHexCode("5B7F00"), LisaaTaso, ruohonkuva);//ruoho
45        kentta.SetTileMethod(Color.FromHexCode("0094FF"), LisaaPiikit, piikkienkuva);//piikit
46        kentta.SetTileMethod(Color.FromHexCode("7F0000"), LuoLapimentava, puunrunko);//puunrunko
47        kentta.SetTileMethod(Color.FromHexCode("267F00"), LisaaTaso, lehdenkuva);
48        kentta.SetTileMethod(Color.FromHexCode("6B6B6B"), LisaaTaso, Palikka);//Leijupalikka
49        kentta.SetTileMethod(Color.FromHexCode("FF0000"), LisaaMaali, maali);
50
51        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
52        Level.CreateBorders();
53        Level.Background.CreateGradient(Color.SkyBlue, Color.SkyBlue);
54    }
55    void LuoAlkuvalikko()
56    {
57        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
58"Aloita peli", "Lopeta");
59        Add(alkuValikko);
60        alkuValikko.AddItemHandler(0, AloitaPeli);
61        alkuValikko.AddItemHandler(1, Exit);
62
63    }
64    void AloitaPeli()
65        {
66        ClearAll();
67        IsFullScreen = true;
68        Gravity = new Vector(0, -1000);
69        SmoothTextures = false;
70        LuoKentta();
71        LisaaNappaimet();
72        LuoPistelaskuri();
73
74
75        Camera.Follow(pelaaja1);
76        Camera.ZoomFactor = 3.2;
77        Camera.StayInLevel = true;
78    }
79    void LisaaTaso(Vector paikka, double leveys, double korkeus,Image kuva)
80    {
81        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
82        taso.Position = paikka;
83        taso.Image = kuva;
84        Add(taso);
85    }
86    void LisaaPiikit(Vector paikka, double leveys, double korkeus,Image kuva)
87    {
88        PhysicsObject piikit = PhysicsObject.CreateStaticObject(leveys, korkeus);
89        piikit.IgnoresCollisionResponse = true;
90        piikit.Position = paikka;
91        piikit.Image = piikkienkuva;
92        piikit.Tag = "Piikki";
93        Add(piikit);
94    }
95
96    void LisaaTahti(Vector paikka, double leveys, double korkeus)
97    {
98        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
99        tahti.IgnoresCollisionResponse = true;
100        tahti.Position = paikka;
101        tahti.Image = tahtiKuva;
102        tahti.Tag = "Salama";
103        Add(tahti);
104    }
105
106    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
107    {
108        pelaaja1 = new PlatformCharacter(leveys, korkeus);
109        pelaaja1.Position = paikka;
110        pelaaja1.Mass = 4.0;
111        pelaaja1.Image = pelaajanKuva;
112        AddCollisionHandler(pelaaja1, "Salama", TormaaTahteen);
113        AddCollisionHandler(pelaaja1, "Piikki", PelaajaTormasi);
114        AddCollisionHandler(pelaaja1, "maali", PelaajaPaasiMaaliin);
115        Add(pelaaja1);
116    }
117    void PelaajaTormasi(PhysicsObject tormaaja, PhysicsObject kohde)
118    {
119        MessageDisplay.Add("Game over!");
120        pelaaja1.Destroy();
121        MultiSelectWindow loppuValikko = new MultiSelectWindow("Haluatko te Yrittää Uudestaan?",
122"Yritä uudelleen", "En!");
123        Add(loppuValikko);
124        loppuValikko.AddItemHandler(0, AloitaPeli);
125        loppuValikko.AddItemHandler(1, Exit);
126
127    }
128    void LisaaNappaimet()
129    {
130        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
131        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
132
133        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
134        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
135        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
136
137        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
138
139        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
140        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
141        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
142       
143    }
144
145    void Liikuta(PlatformCharacter hahmo, double nopeus)
146    {
147        hahmo.Walk(nopeus);
148    }
149
150    void Hyppaa(PlatformCharacter hahmo, double nopeus)
151    {
152        hahmo.Jump(nopeus);
153    }
154
155    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject Salama)
156    {
157       
158        MessageDisplay.Add("Carrot collected");
159        pisteLaskuri.Value += 4;//porkkanat: 53, Maksimi pisteet nyt 212
160        Salama.Destroy();
161    }
162
163    void LuoLapimentava(Vector paikka, double leveys, double korkeus, Image kuva)
164    {
165        GameObject taso = new GameObject(leveys, korkeus);
166        taso.Position = paikka;
167        taso.Image = kuva;
168        Add(taso, -3);
169
170    }
171    IntMeter pisteLaskuri;
172
173    void LuoPistelaskuri()
174    {
175        pisteLaskuri = new IntMeter(0);
176
177        Label pisteNaytto = new Label();
178        pisteNaytto.X = Screen.Left + 100;
179        pisteNaytto.Y = Screen.Top - 100;
180        pisteNaytto.TextColor = Color.Black;
181        pisteNaytto.Title = "Pisteet";
182        Label TaydetPisteet = new Label();
183        TaydetPisteet.X = Screen.Right - 120;
184        TaydetPisteet.Y = Screen.Top - 100;
185        TaydetPisteet.TextColor = Color.DarkGreen;
186        TaydetPisteet.Title = "Tavoite:";
187        TaydetPisteet.Text = "208 Pistettä";
188        Add(TaydetPisteet);
189
190        pisteNaytto.BindTo(pisteLaskuri);
191        Add(pisteNaytto);
192    }
193    void LisaaMaali(Vector paikka, double leveys, double korkeus, Image kuva)
194    {
195        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
196        maali.IgnoresCollisionResponse = true;
197        maali.Position = paikka;
198        maali.Image = kuva;
199        maali.Tag = "maali";
200        Add(maali);
201    }
202
203    void PelaajaPaasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
204    {
205        MessageDisplay.Add("Hienoa! Onnistuit keräämään kaikki porkkanat ");
206        Timer.SingleShot(3.0, LoppuValikko);
207
208    }
209    void LoppuValikko()
210    {
211        MultiSelectWindow loppuValikko = new MultiSelectWindow("Haluatko te Yrittää Uudestaan?",
212"Yritä uudelleen", "En!");
213        Add(loppuValikko);
214        loppuValikko.AddItemHandler(0, AloitaPeli);
215        loppuValikko.AddItemHandler(1, Exit);
216    }
217
218
219
220
221
222}
Note: See TracBrowser for help on using the repository browser.