source: 2013/26/JustusK/Rainbow_Jump/Rainbow_Jump/Rainbow_Jump/Rainbow_Jump.cs @ 4263

Revision 4263, 7.1 KB checked in by juskovan, 10 years ago (diff)

Talletus.

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Rainbow_Jump : PhysicsGame
10{
11    const double nopeus = 250;
12    const double hyppyNopeus = 900;
13    const int RUUDUN_KOKO = 40;
14    Vector start;
15    int kenttanro = 1;
16    IntMeter KuolemaLaskuri;
17
18    PlatformCharacter pelaaja1;
19    Image pelaajanKuva = LoadImage("norsu");
20    Image tahtiKuva = LoadImage("tahti");
21    Image morko = LoadImage("Sompi");
22    Image Ovi = LoadImage("Ovi");
23    Image supermorko = LoadImage("supermorko");
24
25    SoundEffect maaliAani = LoadSoundEffect("maali");
26
27
28   
29    public override void Begin()
30    {
31        //LisaaNappaimet();
32        SeuraavaKentta();
33    }
34
35
36   
37    void LuoKentta(string Kenttanimi)
38    {
39        ColorTileMap kentta = ColorTileMap.FromLevelAsset(Kenttanimi);
40        kentta.SetTileMethod("000000", LisaaTaso);
41        kentta.SetTileMethod("FFFA00", LisaaTahti);
42        kentta.SetTileMethod("0026FF", LisaaPelaaja);
43        kentta.SetTileMethod("FF0000", LisaaLaava);
44        kentta.SetTileMethod("00FFFF", LisaaLiikkuvaVihu);
45        kentta.SetTileMethod("710000", LisaaMaali);
46        kentta.SetTileMethod("DE4FFF", SuperMorko);
47        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
48        Level.CreateBorders();
49        Level.Background.CreateGradient(Color.Gray, Color.Gray);
50    }
51
52    void LisaaLiikkuvaVihu(Vector paikka, double leveys, double korkeus)
53    {
54        PlatformCharacter vihu = new PlatformCharacter(leveys, korkeus);
55        vihu.Position = paikka;
56        vihu.Tag = "vihu";
57        vihu.Image = morko;
58        Add(vihu);
59
60        PlatformWandererBrain pfwb = new PlatformWandererBrain();
61        pfwb.Speed = 100;
62        vihu.Brain = pfwb;
63    }
64
65    void LisaaTaso(Vector paikka, double leveys, double korkeus)
66    {
67        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
68        taso.Position = paikka;
69        taso.Color = Color.Black;
70        Add(taso);
71    }
72
73    void LisaaTahti(Vector paikka, double leveys, double korkeus)
74    {
75        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
76        tahti.IgnoresCollisionResponse = true;
77        tahti.Position = paikka;
78        tahti.Image = tahtiKuva;
79        tahti.Tag = "tahti";
80        Add(tahti);
81    }
82
83    void LisaaMaali(Vector paikka, double leveys, double korkeus)
84    {
85        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
86        maali.IgnoresCollisionResponse = true;
87        maali.Position = paikka;
88        maali.Image = Ovi;
89        maali.Tag = "Ovi";
90        Add(maali);
91    }
92
93    void SuperMorko(Vector paikka, double leveys, double korkeus)
94    {
95        PhysicsObject superMorko = new PhysicsObject(leveys, korkeus);
96        superMorko.IgnoresCollisionResponse = true;
97        superMorko.Position = paikka;
98        superMorko.Image = supermorko;
99        superMorko.Tag = "SuperMorko";
100        Add(superMorko);
101
102        FollowerBrain tasoAivot = new FollowerBrain(pelaaja1);
103        // tasoAivot.Speed = 100;
104        superMorko.Brain = tasoAivot;
105    }
106
107    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
108    {
109        start = paikka;
110        pelaaja1 = new PlatformCharacter(leveys, korkeus);
111        pelaaja1.Position = paikka;
112        pelaaja1.Mass = 4.0;
113        pelaaja1.Image = pelaajanKuva;
114        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
115        AddCollisionHandler(pelaaja1, "vihu", SiirryAlkuun);
116        AddCollisionHandler(pelaaja1, "laava", SiirryAlkuun);
117        AddCollisionHandler(pelaaja1, "Ovi", TormaaOveen);
118        AddCollisionHandler(pelaaja1, "SuperMorko", TormaaSuperMorkoon);
119        Add(pelaaja1);
120    }
121
122    void TormaaSuperMorkoon(PhysicsObject pelaaja, PhysicsObject kohde)
123    {
124        kenttanro = 1;
125        SeuraavaKentta();
126    }
127
128    void SiirryAlkuun(PhysicsObject pelaaja, PhysicsObject kohde)
129    {
130        pelaaja1.Position = start;
131    }
132
133
134    void LisaaLaava(Vector paikka, double levelys, double korkeus)
135    {
136        PhysicsObject laava = new PhysicsObject(levelys, korkeus);
137        laava.Tag = "laava";
138        laava.Position = paikka;
139        laava.MakeStatic();
140        laava.Color = Color.OrangeRed;
141        Add(laava);
142    }
143    void LisaaNappaimet()
144    {
145        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
146        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
147        if (ControllerOne.IsConnected)
148        {
149
150            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
151            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
152            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
153            ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
154        }
155        //else
156        //{
157            Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
158            Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
159            Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
160        //}
161
162        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
163    }
164
165    void Liikuta(PlatformCharacter hahmo, double nopeus)
166    {
167        hahmo.Walk(nopeus);
168    }
169
170    void Hyppaa(PlatformCharacter hahmo, double nopeus)
171    {
172        hahmo.Jump(nopeus);
173    }
174
175    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
176    {
177        maaliAani.Play();
178        MessageDisplay.Add("Sait yhden tähden lisää! :3");
179        tahti.Destroy();
180    }
181
182    void TormaaOveen(PhysicsObject hahmo, PhysicsObject maali)
183    {
184        kenttanro++;
185        SeuraavaKentta();
186    }
187
188    void SeuraavaKentta()
189    {
190        ClearAll();
191
192        if (kenttanro == 1) LuoKentta("kentta1");
193        else if (kenttanro == 2) LuoKentta("kentta2");
194        else if (kenttanro == 3) LuoKentta("kentta3");
195        else if (kenttanro == 4) LuoKentta("kentta4");
196        else if (kenttanro > 4) Exit();
197
198        Camera.Follow(pelaaja1);
199        Camera.ZoomFactor = 1.2;
200        Camera.StayInLevel = true;
201        Gravity = new Vector(0, -1000);
202
203        LisaaNappaimet();
204    }
205
206    void LuoKuolemaLaskuri()
207    {
208        KuolemaLaskuri = new IntMeter(0);
209
210        Label pisteNaytto = new Label();
211        pisteNaytto.X = Screen.Left + 100;
212        pisteNaytto.Y = Screen.Top - 100;
213        pisteNaytto.TextColor = Color.Black;
214        pisteNaytto.Color = Color.White;
215        pisteNaytto.IntFormatString = "Kuolemia: {0:D1}";
216        pisteNaytto.BindTo(KuolemaLaskuri);
217        Add(pisteNaytto);
218    }
219    void TormasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
220    {
221        kenttanro++;
222        SeuraavaKentta();
223    }
224
225}
Note: See TracBrowser for help on using the repository browser.