source: 2016/26/HeiniI/CloudJump/CloudJump/CloudJump/CloudJump.cs @ 10334

Revision 7626, 8.2 KB checked in by hekaihal, 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 CloudJump : PhysicsGame
10{
11
12    PlatformCharacter lammas;
13    Image pelaajanKuva = LoadImage("lammas");
14    Image[] pelaajanKuvat = LoadImages("lammas", "muhufinssi", "liinunMarja", "molkov");
15    Image kuukuva = LoadImage("tahti");
16    //Image Oiketausta = LoadImage("oikeatausta2");
17    Image Oikeatausta = LoadImage("oikeatausta4");
18    Image pinkkilaattakuva = LoadImage("pinkkilaatta");
19    Image koristeraketti = LoadImage("raketti");
20    Image liilalaattakuva = LoadImage("liilalaatta");
21    Image maalikuva = LoadImage("maali");
22    Image Avaruuslaatta = LoadImage("avaruuslaatta");
23    Image pilvikuva = LoadImage("pilvi");
24    const double nopeus = 200;
25    const double hyppyNopeus = 750;
26
27    double kameranraja = Double.MinValue;
28    PhysicsObject kuolotaso;
29
30    int KenttäNro = 2;
31
32    public override void Begin()
33    {
34
35        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko",
36        "Aloita peli", "Lopeta");
37        Add(alkuValikko);
38
39        alkuValikko.AddItemHandler(0, HahmoValikko);
40        alkuValikko.AddItemHandler(1, Exit);
41    }
42
43    void HahmoValikko()
44    {
45        MultiSelectWindow alkuValikko = new MultiSelectWindow("Minkä hahmon haluat?",
46        "Pinkki Lammas", "muhfinssi", "Marja-Otus", "Alien");
47        Add(alkuValikko);
48
49        alkuValikko.AddItemHandler(0, delegate() { pelaajanKuva = pelaajanKuvat[0]; AloitaPeli(); });
50        alkuValikko.AddItemHandler(1, delegate () { pelaajanKuva = pelaajanKuvat[1]; AloitaPeli(); });
51        alkuValikko.AddItemHandler(2, delegate () { pelaajanKuva = pelaajanKuvat[2]; AloitaPeli(); });
52        alkuValikko.AddItemHandler(3, delegate () { pelaajanKuva = pelaajanKuvat[3]; AloitaPeli(); });
53    }
54
55    void AloitaPeli()
56    {
57        Gravity = new Vector(0, -1000);
58        LuoKentta();
59        LisaaNappaimet();
60
61        Camera.FollowX(lammas);
62        Camera.ZoomFactor = 1.2;
63        kameranraja = Double.MinValue;
64        Camera.StayInLevel = true;
65    }
66
67
68    protected override void Update(Time time)
69    {
70        if (lammas != null)
71        {
72            if (lammas.Y > kameranraja)
73            {
74                Camera.Y = lammas.Y;
75                kameranraja = Camera.Y;
76
77                kuolotaso.Y = Camera.Y - 170;
78            }
79            else
80            {
81                Camera.Y = kameranraja;
82
83            }
84        }
85
86        base.Update(time);
87    }
88
89    void LuoKentta()
90    {
91
92        ColorTileMap ruudut = ColorTileMap.FromLevelAsset("oikeatausta" + KenttäNro);
93        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
94        ruudut.SetTileMethod(Color.FromHexCode("#FFFF3A61"), LisaaPilvi);
95        ruudut.SetTileMethod(Color.FromHexCode("0026FF"), LisaaLammas);
96        ruudut.SetTileMethod(Color.White, LisaaMaali);
97        ruudut.SetTileMethod(Color.Black, PohjaLaatta);
98        ruudut.SetTileMethod(Color.FromHexCode("#FF10FF04"), PuunRunko);
99        ruudut.SetTileMethod(Color.FromHexCode("FFF200"), LuoAvaruus);
100        ruudut.SetTileMethod(Color.FromHexCode("FF0000"), Avaruuspohja);
101        ruudut.SetTileMethod(Color.FromHexCode("00FFF6"), LuoRaketti);
102        ruudut.Execute(20, 20);
103       
104        Kuolotaso();
105
106    }
107    void LuoRaketti(Vector paikka, double leveys, double korkeus)
108    {
109        PhysicsObject LuoRaketti = PhysicsObject.CreateStaticObject(leveys*3, korkeus*6);
110        LuoRaketti.Position = paikka;
111        LuoRaketti.Image = koristeraketti;
112        Add(LuoRaketti);
113        Level.Background.CreateGradient(Color.LightGray, Color.Black);
114    }
115    void Avaruuspohja(Vector paikka, double leveys, double korkeus)
116    {
117        PhysicsObject Avaruuspohja = PhysicsObject.CreateStaticObject(leveys, korkeus);
118        Avaruuspohja.Position = paikka;
119        Avaruuspohja.Image = Avaruuslaatta;
120        Add(Avaruuspohja);
121    }
122    void LuoAvaruus(Vector paikka, double leveys, double korkeus)
123    {
124        PhysicsObject avaruustaso = PhysicsObject.CreateStaticObject(leveys*3, korkeus);
125        avaruustaso.Position = paikka;
126        avaruustaso.Image = kuukuva;
127        Add(avaruustaso);
128    }
129    void LisaaPilvi(Vector paikka, double leveys, double korkeus)
130    {
131        PhysicsObject pilvi = PhysicsObject.CreateStaticObject(leveys + 30, korkeus);
132        pilvi.Position = paikka;
133        pilvi.Image = pilvikuva;
134        Add(pilvi);
135    }
136    void LisaaLammas(Vector paikka, double leveys, double korkeus)
137    {
138        lammas = new PlatformCharacter(leveys + 20, korkeus + 20);
139        lammas.Position = paikka;
140        lammas.Image = pelaajanKuva;
141        lammas.Tag = "lammas";
142        AddCollisionHandler(lammas, "alaraja", PelaajaOsuu);
143        AddCollisionHandler(lammas, "mtahti", voitit);
144        Add(lammas);
145
146    }
147    void LuoTaso(Vector paikka, double leveys, double korkeus)
148    {
149        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
150        taso.Position = paikka;
151        taso.Image = Oikeatausta;
152        Add(taso);
153    }
154    void PohjaLaatta(Vector paikka, double leveys, double korkeus)
155    {
156        PhysicsObject pinkkilaatta = PhysicsObject.CreateStaticObject(leveys, korkeus);
157        pinkkilaatta.Position = paikka;
158        pinkkilaatta.Image = pinkkilaattakuva;
159        Add(pinkkilaatta);
160    }
161
162    void PuunRunko(Vector paikka, double leveys, double korkeus)
163    {
164        PhysicsObject liilalaatta = PhysicsObject.CreateStaticObject(leveys, korkeus);
165        liilalaatta.Position = paikka;
166        liilalaatta.Image = liilalaattakuva;
167        Add(liilalaatta);
168    }
169    void LisaaNappaimet()
170    {
171        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
172        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
173
174        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", lammas, -nopeus);
175        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", lammas, nopeus);
176        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", lammas, hyppyNopeus);
177
178        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
179
180        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", lammas, -nopeus);
181        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", lammas, nopeus);
182        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", lammas, hyppyNopeus);
183
184        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
185
186
187    }
188
189    void Liikuta(PlatformCharacter hahmo, double nopeus)
190    {
191        hahmo.Walk(nopeus);
192    }
193
194    void Hyppaa(PlatformCharacter hahmo, double nopeus)
195    {
196        hahmo.Jump(nopeus);
197    }
198
199
200    void Kuolotaso()
201    {
202        kuolotaso = new PhysicsObject(Level.Width, 20);
203        kuolotaso.Position = new Vector(0, Level.Bottom);
204        kuolotaso.Tag = "alaraja";
205        kuolotaso.IgnoresPhysicsLogics = true;
206        kuolotaso.IgnoresCollisionResponse = true;
207        Add(kuolotaso);
208    }
209    void PelaajaOsuu(PhysicsObject lammas, PhysicsObject kuolotaso)
210    {
211        lammas.Destroy();
212        ClearAll();
213
214        Begin();
215
216    }
217    void LisaaMaali(Vector paikka, double leveys, double korkeus)
218    {
219        PhysicsObject maali =  PhysicsObject.CreateStaticObject(leveys*2, korkeus*2);
220        maali.Position = paikka;
221        maali.Image = maalikuva;
222        maali.Tag = "mtahti";
223        Add(maali);
224    }
225    void voitit(PhysicsObject lammas, PhysicsObject maali)
226    {
227        SeuraavaKentta();
228    }
229
230
231    void SeuraavaKentta()
232    {
233        ClearAll();
234        KenttäNro++;
235
236        if (KenttäNro < 5)
237        {
238            AloitaPeli();
239        }
240        else
241        {
242            Exit();
243        }
244
245       /* if (KenttäNro == 2) ("kentta2");
246        else if (Oikeatausta == 3)LuoKentta("kentta3");
247        else if (Oikeatausta > 3) Exit();
248
249        LisaaNappaimet();*/
250
251    }
252}
Note: See TracBrowser for help on using the repository browser.