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

Revision 4316, 7.4 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 = 5;
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("pelaaja");
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 = 300000000000000.0;
113        pelaaja1.Image = pelaajanKuva;
114        pelaaja1.Tag = "pelaaja";
115        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
116        AddCollisionHandler(pelaaja1, "vihu", SiirryAlkuun);
117        AddCollisionHandler(pelaaja1, "laava", SiirryAlkuun);
118        AddCollisionHandler(pelaaja1, "Ovi", TormaaOveen);
119        AddCollisionHandler(pelaaja1, "SuperMorko", TormaaSuperMorkoon);
120        Add(pelaaja1);
121    }
122
123    void TormaaSuperMorkoon(PhysicsObject pelaaja, PhysicsObject kohde)
124    {
125        kenttanro = 1;
126        SeuraavaKentta();
127    }
128
129    void SiirryAlkuun(PhysicsObject pelaaja, PhysicsObject kohde)
130    {
131        //pelaaja1.Position = start;
132        SeuraavaKentta();
133    }
134
135
136    void LisaaLaava(Vector paikka, double levelys, double korkeus)
137    {
138        PhysicsObject laava = new PhysicsObject(levelys, korkeus);
139        laava.Tag = "laava";
140        laava.Position = paikka;
141        laava.MakeStatic();
142        laava.Color = Color.OrangeRed;
143        Add(laava);
144    }
145    void LisaaNappaimet()
146    {
147        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
148        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
149        if (ControllerOne.IsConnected)
150        {
151
152            ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
153            ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
154            ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
155            ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
156        }
157        //else
158        //{
159            Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
160            Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
161            Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
162        //}
163
164        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
165    }
166
167    void Liikuta(PlatformCharacter hahmo, double nopeus)
168    {
169        hahmo.Walk(nopeus);
170    }
171
172    void Hyppaa(PlatformCharacter hahmo, double nopeus)
173    {
174        hahmo.Jump(nopeus);
175    }
176
177    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
178    {
179        maaliAani.Play();
180        //MessageDisplay.Add("Sait yhden tähden lisää! :3");
181        tahti.Destroy();
182    }
183
184    void TormaaOveen(PhysicsObject hahmo, PhysicsObject maali)
185    {
186        kenttanro++;
187        SeuraavaKentta();
188    }
189
190    void SeuraavaKentta()
191    {
192        ClearAll();
193
194        if (kenttanro == 1) LuoKentta("kentta1");
195        else if (kenttanro == 2) LuoKentta("kentta2");
196        else if (kenttanro == 3) LuoKentta("kentta3");
197        else if (kenttanro == 4) LuoKentta("kentta4");
198        else if (kenttanro == 5) LuoKentta("kentta5");
199        else if (kenttanro == 6) LuoKentta("kentta6");
200        else if (kenttanro == 7) LuoKentta("kentta7");
201        else if (kenttanro == 8) LuoKentta("kentta8");
202        else if (kenttanro > 8) Exit();
203
204        Camera.Follow(pelaaja1);
205        Camera.ZoomFactor = 1.2;
206        Camera.StayInLevel = true;
207        Gravity = new Vector(0, -1000);
208
209        LisaaNappaimet();
210    }
211
212    void LuoKuolemaLaskuri()
213    {
214        KuolemaLaskuri = new IntMeter(0);
215
216        Label pisteNaytto = new Label();
217        pisteNaytto.X = Screen.Left + 100;
218        pisteNaytto.Y = Screen.Top - 100;
219        pisteNaytto.TextColor = Color.Black;
220        pisteNaytto.Color = Color.White;
221        pisteNaytto.IntFormatString = "Kuolemia: {0:D1}";
222        pisteNaytto.BindTo(KuolemaLaskuri);
223        Add(pisteNaytto);
224    }
225    void TormasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
226    {
227        kenttanro++;
228        SeuraavaKentta();
229    }
230
231}
Note: See TracBrowser for help on using the repository browser.