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

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