source: 2012/kerho/LeoL/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1/Tasohyppelypeli1.cs @ 3957

Revision 3957, 7.4 KB checked in by jotapoti, 9 years ago (diff)

27.4.2013 tehdyt muutokset

Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Tasohyppelypeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 750;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16    PlatformCharacter koopa;
17    PlatformCharacter goomba;
18    Image tausta = LoadImage("Taustat/Tausta");
19    Image vihunkuva = LoadImage("Goomba/goomba1");
20    Image pelaajanKuva = LoadImage("Mario/mario_2");
21    Image mario_hyppaa = LoadImage("Mario/mario_1");
22    Image tahtiKuva = LoadImage("Kolikko");
23    Image nurmikko = LoadImage("nurmikko");
24    Image multa = LoadImage("multa");
25    Animation mario_kavelee = new Animation(LoadImages("Mario/mario_1", "Mario/mario_2"));
26    Animation goomba_kavelee = new Animation(LoadImages("Goomba/goomba1", "Goomba/goomba2"));
27    Animation koopa_kavelee = new Animation(LoadImages("Koopa/koopa", "Koopa/koopa2"));
28
29
30    SoundEffect kuoliAani = LoadSoundEffect("smb_mariodie");
31    SoundEffect maaliAani = LoadSoundEffect("smb_coin");
32
33    //Pelin alussa ollaan kentässä 1
34    int kenttaNro = 1;
35
36    public override void Begin()
37    {
38       
39        SeuraavaKentta();
40        MediaPlayer.Play("musaa");
41
42
43        Camera.Follow(pelaaja1);
44        Camera.ZoomFactor = 1.2;
45        Camera.StayInLevel = true;
46    }
47
48    void LuoKentta(string kentanNimi)
49    {
50         TileMap kentta = TileMap.FromLevelAsset(kentanNimi);
51        kentta.SetTileMethod('K', LisaaVihu2);
52        kentta.SetTileMethod('m', LisaaMaali);
53        kentta.SetTileMethod('G', LisaaVihu);
54        kentta.SetTileMethod('#', LisaaNurmikko);
55        kentta.SetTileMethod('T', LisaaMulta);
56        kentta.SetTileMethod('*', LisaaTahti);
57        kentta.SetTileMethod('M', LisaaPelaaja);
58        kentta.SetTileMethod('r', LisaaRotko);
59        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
60        Level.CreateBorders();
61        Level.Background.Image = tausta;
62        Level.Background.FitToLevel();
63        //Level.Background.TextureWrapSize = new Vector(3.0, 1.0);
64    }
65
66    void LisaaNurmikko(Vector paikka, double leveys, double korkeus)
67    {
68        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
69        taso.Position = paikka;
70        taso.Image = nurmikko;
71        Add(taso);
72    }
73
74    void LisaaMulta(Vector paikka, double leveys, double korkeus)
75    {
76        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
77        taso.Position = paikka;
78        taso.Image = multa;
79        Add(taso);
80    }
81
82    void LisaaTahti(Vector paikka, double leveys, double korkeus)
83    {
84        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
85        tahti.IgnoresCollisionResponse = true;
86        tahti.Position = paikka;
87        tahti.Image = tahtiKuva;
88        tahti.Tag = "tahti";
89        Add(tahti);
90    }
91
92    void LisaaPelaaja(Vector paikka, double leveys, double korkeus)
93    {
94        pelaaja1 = new PlatformCharacter(leveys, korkeus);
95        pelaaja1.Position = paikka;
96        pelaaja1.Mass = 4.0;
97        mario_kavelee.FPS = 5;
98        pelaaja1.AnimIdle = pelaajanKuva;
99        pelaaja1.AnimWalk = mario_kavelee;
100        pelaaja1.AnimJump = mario_hyppaa;
101        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
102        AddCollisionHandler(pelaaja1, "vihu", TormaaVihuun);
103        AddCollisionHandler(pelaaja1, "Rotko", TormaaRotkoon);
104        AddCollisionHandler(pelaaja1, "maali", TormaaMaaliin);
105        Add(pelaaja1);
106    }
107
108    void LisaaVihu(Vector paikka, double leveys, double korkeus)
109    {
110        goomba = new PlatformCharacter(leveys, korkeus);
111        goomba.Position = paikka;
112        goomba.Mass = 4.0;
113        //goomba.Animation.FPS = 5;
114        goomba.AnimIdle = vihunkuva;
115        goomba.AnimWalk = new Animation(goomba_kavelee);
116        goomba.Tag = "vihu";
117        Add(goomba);
118
119        PlatformWandererBrain goombaAivot = new PlatformWandererBrain();
120        goombaAivot.Speed = 100;
121        goomba.Brain = goombaAivot;
122    }
123
124    void LisaaNappaimet()
125    {
126        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
127        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
128
129        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
130        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
131        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
132
133        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
134
135        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
136        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
137        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
138
139        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
140    }
141
142    void Liikuta(PlatformCharacter hahmo, double nopeus)
143    {
144        hahmo.Walk(nopeus);
145    }
146
147    void Hyppaa(PlatformCharacter hahmo, double nopeus)
148    {
149        hahmo.Jump(nopeus);
150    }
151
152    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
153    {
154        maaliAani.Play();
155        MessageDisplay.Add("jeee");
156        tahti.Destroy();
157    }
158    void TormaaVihuun(PhysicsObject hahmo, PhysicsObject vihu)
159    {
160        pelaaja1.Destroy();
161        kuoliAani.Play();
162    }
163    void LisaaRotko(Vector paikka, double leveys, double korkeus)
164    {
165        PhysicsObject rotko = new PhysicsObject(leveys, korkeus);
166        rotko.Position = paikka;
167        rotko.IsVisible = false;
168        rotko.Mass = 4.0;
169        rotko.Tag = "Rotko";
170        Add(rotko);
171
172    }
173
174    void TormaaRotkoon(PhysicsObject hahmo, PhysicsObject rotko)
175    {
176        pelaaja1.Destroy();
177        kuoliAani.Play();
178    }
179
180    void TormaaMaaliin(PhysicsObject pelaaja1, PhysicsObject maali)
181    {
182
183        //Kasvatetaan kenttänumeroa yhdellä ja siirrytään seuraavaan kenttään:
184        kenttaNro = kenttaNro + 1;
185        SeuraavaKentta();
186    }
187    void SeuraavaKentta()
188    {
189        ClearAll();
190
191        if (kenttaNro == 1) LuoKentta("kentta1");
192        else if (kenttaNro == 2) LuoKentta("kentta2");
193        else if (kenttaNro == 3) LuoKentta("kentta3");
194        else if (kenttaNro > 3) Exit();
195
196        LisaaNappaimet();
197        Gravity = new Vector(0, -1000);
198
199    }
200
201    void LisaaMaali(Vector paikka, double leveys, double korkeus)
202    {
203        PhysicsObject maali = new PhysicsObject(leveys, korkeus);
204        //maali.IgnoresCollisionResponse = true;
205        maali.Position = paikka;
206        maali.IsVisible = false;
207        maali.Tag = "maali";
208        Add(maali);
209    }
210    void LisaaVihu2(Vector paikka, double leveys, double korkeus)
211    {
212        koopa = new PlatformCharacter(leveys, korkeus);
213        koopa.Position = paikka;
214        koopa.Mass = 4.0;
215        //koopa.Animation.FPS = 5;
216        koopa.AnimIdle = vihunkuva;
217        koopa.AnimWalk = new Animation(goomba_kavelee);
218        koopa.Tag = "vihu";
219        Add(koopa);
220
221        PlatformWandererBrain goombaAivot = new PlatformWandererBrain();
222        goombaAivot.Speed = 100;
223        goomba.Brain = goombaAivot;
224    }
225}
Note: See TracBrowser for help on using the repository browser.