source: 2013/24/EemeliP/Tasohyppelypeli3/Tasohyppelypeli3/Tasohyppelypeli3/Braaains!!.cs @ 4124

Revision 4124, 6.0 KB checked in by eevipenn, 8 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 Tasohyppelypeli3 : PhysicsGame
10{
11    int kenttaNro = 1;
12
13    const double nopeus = 450;
14    const double hyppyNopeus = 800;
15    const int RUUDUN_KOKO = 40;
16
17    Vector aloituspaikka = Vector.Zero;
18    PlatformCharacter pelaaja1;
19
20    Image maaliKuva = LoadImage("finish");
21    Image vaaraKuva = LoadImage("spike");
22    Image pelaajanKuva = LoadImage("ukko");
23    Image tahtiKuva = LoadImage("tahti");
24
25    SoundEffect maaliAani = LoadSoundEffect("beep");
26    private Animation fetusAnimaatio;
27
28    public override void Begin()
29    {
30        fetusAnimaatio = LoadAnimation("fetus");
31        MultiSelectWindow alkuValikko = new MultiSelectWindow("Braaains!!", "Start", "Close");
32        alkuValikko.AddItemHandler(0, AloitaPeli);
33        alkuValikko.AddItemHandler(1, Exit);
34        Add(alkuValikko);
35
36        IsFullScreen = true;
37
38    }
39
40    void AloitaPeli()
41    {
42        SeuraavaKentta();
43    }
44
45    void LuoKentta()
46    {
47        MediaPlayer.Play("hotdamned");
48        TileMap kentta = TileMap.FromLevelAsset("kentta1");
49    }
50
51    void LisaaTaso(Vector paikka, double leveys, double korkeus)
52    {
53        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
54        taso.Position = paikka;
55        taso.Color = Color.Red;
56        Add(taso);
57    }
58
59    void LisaaTahti(Vector paikka, double leveys, double korkeus)
60    {
61        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
62        tahti.IgnoresCollisionResponse = true;
63        tahti.Position = paikka;
64        tahti.Image = tahtiKuva;
65        tahti.Tag = "tahti";
66        Add(tahti);
67    }
68
69    void LisaaVaara(Vector paikka, double leveys, double korkeus)
70    {
71        PhysicsObject vaara = PhysicsObject.CreateStaticObject(leveys, korkeus);
72        vaara.IgnoresCollisionResponse = true;
73        vaara.Position = paikka;
74        vaara.Image = vaaraKuva;
75        vaara.Tag = "spike";
76        Add(vaara);
77    }
78
79    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
80    {
81        pelaaja1 = new PlatformCharacter(leveys, korkeus);
82        pelaaja1.Animation = fetusAnimaatio;
83        pelaaja1.Animation.Start();
84        pelaaja1.Position = paikka;
85        pelaaja1.Mass = 4.0;
86        //pelaaja1.Image = pelaajanKuva;
87        aloituspaikka = paikka;
88        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
89        AddCollisionHandler(pelaaja1, "spike", TormaaVaaraan);
90        AddCollisionHandler(pelaaja1, "maali", TormasiMaaliin);
91        Add(pelaaja1);
92    }
93
94
95
96    void LisaaNappaimet()
97    {
98        Keyboard.Listen(Key.P, ButtonState.Pressed, Pause, "Pysäyttää pelin");
99        Keyboard.Listen(Key.I, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
100        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
101
102        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
103        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
104        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
105
106        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
107
108        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
109        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
110        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
111
112        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
113    }
114
115    void Liikuta(PlatformCharacter hahmo, double nopeus)
116    {
117        hahmo.Walk(nopeus);
118    }
119
120    void Hyppaa(PlatformCharacter hahmo, double nopeus)
121    {
122        hahmo.Jump(nopeus);
123    }
124
125    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
126    {
127        maaliAani.Play();
128        MessageDisplay.Add("BRAAAINS!!");
129        tahti.Destroy();
130    }
131
132    void TormaaVaaraan(PhysicsObject hahmo, PhysicsObject vaara)
133    {
134        MessageDisplay.Add("Start again");
135        hahmo.Position = aloituspaikka;
136    }
137
138    void AloitaAlusta()
139    {
140        LuoKentta();
141        Gravity = new Vector(0, -1000);
142    }
143
144    void LuoKentta(string kenttaNimi)
145    {
146        MediaPlayer.Play(kenttaNimi + "_musiikki");
147        TileMap kentta = TileMap.FromLevelAsset(kenttaNimi);
148        kentta.SetTileMethod('#', LisaaTaso);
149        kentta.SetTileMethod('M', LisaaMaali);
150        kentta.SetTileMethod('V', LisaaVaara);
151        kentta.SetTileMethod('*', LisaaTahti);
152        kentta.SetTileMethod('N', LisaaPelaaja);
153        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
154        Level.CreateBorders();
155        Level.Background.CreateGradient(Color.Red, Color.Black);
156
157    }
158    void TormasiMaaliin(PhysicsObject pelaaja, PhysicsObject maali)
159    {
160        kenttaNro++;
161        SeuraavaKentta();
162    }
163
164
165    void SeuraavaKentta()
166    {
167        ClearAll();
168
169        if (kenttaNro == 1) LuoKentta("kentta1");
170        else if (kenttaNro == 2) LuoKentta("kentta2");
171        else if (kenttaNro == 3) LuoKentta("kentta3");
172        else if (kenttaNro == 4) LuoKentta("kentta4");
173        else if (kenttaNro == 5) LuoKentta("kentta5");
174        else if (kenttaNro > 6) Exit();
175
176        Gravity = new Vector(0, -1000);
177        LisaaNappaimet();
178
179        Camera.Follow(pelaaja1);
180        Camera.ZoomFactor = 1.2;
181        Camera.StayInLevel = true;
182
183    }
184
185    void LisaaMaali(Vector paikka, double leveys, double korkeus)
186    {
187        PhysicsObject maali = PhysicsObject.CreateStaticObject(leveys, korkeus);
188        maali.IgnoresCollisionResponse = true;
189        maali.Position = paikka;
190        maali.Image = maaliKuva;
191        maali.Tag = "maali";
192        Add(maali);
193    }
194
195}
Note: See TracBrowser for help on using the repository browser.