source: 2012/24/ErikL/Tasohyppelypeli/Tasohyppelypeli/Tasohyppelypeli/Tasohyppelypeli.cs @ 3108

Revision 3108, 6.9 KB checked in by erjulule, 7 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 Tasohyppelypeli : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 1000;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17    Image es = LoadImage("esso");
18    Image jonne = LoadImage("jonnela");
19
20    PhysicsObject vasenReuna;
21    PhysicsObject alaReuna;
22    int kenttaNro =1;
23
24    SoundEffect maaliAani = LoadSoundEffect("maali");
25
26    public override void Begin()
27    {
28       
29        Gravity = new Vector(0, -1000);
30       
31       
32       // SeuraavaKentta(kenttaNro);
33        luoKentta("kentta1.txt");
34
35
36        Camera.Follow(pelaaja1);
37        Camera.ZoomFactor = 1.2;
38        Camera.StayInLevel = true;
39    }
40
41    void luoKentta(string kenttaTiedostonNimi)
42    {
43       
44        TileMap kentta = TileMap.FromFile(kenttaTiedostonNimi);
45       
46        kentta.SetTileMethod('#', lisaaTaso);
47        kentta.SetTileMethod('*', lisaaTahti);
48        kentta.SetTileMethod('N', lisaaPelaaja);
49        kentta.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
50        Level.CreateBorders();
51        Level.Background.CreateGradient(Color.White, Color.SkyBlue);
52        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
53        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
54        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
55        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
56        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
57        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
58        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
59        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
60        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
61        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
62
63        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
64       
65    }
66
67    void lisaaTaso(Vector paikka, double leveys, double korkeus)
68    {
69        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
70        taso.Position = paikka;
71        taso.Image = LoadImage("tasokuva");
72        Add(taso);
73    }
74
75    void lisaaTahti(Vector paikka, double leveys, double korkeus)
76    {
77        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
78        tahti.IgnoresCollisionResponse = true;
79        tahti.Position = paikka;
80        tahti.Image = es;
81        tahti.Tag = "tahti";
82        Add(tahti);
83    }
84
85    void lisaaPelaaja(Vector paikka, double leveys, double korkeus)
86    {
87        pelaaja1 = new PlatformCharacter(leveys, korkeus);
88        pelaaja1.Position = paikka;
89        pelaaja1.Mass = 4.0;
90        pelaaja1.Image = jonne;
91        AddCollisionHandler(pelaaja1, kasittelePelaajanTormays);
92        Add(pelaaja1);
93    }
94
95    void AsetaOhjaimet()
96    {
97        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
98        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
99        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
100        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
101        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
102        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
103        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
104        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
105        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
106        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
107
108        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
109    }
110
111    void liikuta(PlatformCharacter hahmo, double nopeus)
112    {
113        hahmo.Walk(nopeus);
114    }
115
116    void hyppaa(PlatformCharacter hahmo, double nopeus)
117    {
118        hahmo.Jump(nopeus);
119    }
120
121    void kasittelePelaajanTormays(PhysicsObject hahmo, PhysicsObject kohde)
122    {
123        if (kohde.Tag.ToString() == "tahti")
124        {
125            maaliAani.Play();
126            MessageDisplay.Add("Keräsit es!");
127            kohde.Destroy();
128        }
129    }
130
131 
132
133    void SeuraavaKentta(int kentanNro)
134    {
135     
136           
137       vasenReuna = Level.CreateLeftBorder();
138       Level.CreateRightBorder();
139       alaReuna = Level.CreateBottomBorder();
140       Level.CreateTopBorder();
141
142       pelaaja2 = new PhysicsObject(40, 20);
143        pelaaja2.image = juho;
144        pelaaja2.mass = 4.0;
145        AddCollisionHandler (pelaaja2, Pelaaja2Tormasi);
146        Add ( pelaaja2 );
147       
148        if(kentanNro == 1) luoKentta("kentta1");
149    else if(kentanNro == 2) luoKentta("kentta2");
150    else if(kentanNro == 3) luoKentta("kentta3");
151    else if(kentanNro > 3) Exit ();
152   
153    AsetaOhjaimet();
154
155     LuoKentta (string kentta2.txt);
156        {
157        TileMap kentta = TileMap.FromFile(kentta2.txt);
158        kentta.SetTileMethod('#', lisaaTaso);
159        kentta.SetTileMethod('$', lisaaTahti);
160        kentta.SetTileMethod('N', lisaaPelaaja);
161
162
163        }
164
165
166        void AsetaOhjaimet();
167        {
168        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
169        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu pelistä");
170        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
171        Keyboard.Listen(Key.Left, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
172        Keyboard.Listen(Key.Right, ButtonState.Down, liikuta, "Liikkuu vasemmalle", pelaaja1, nopeus);
173        Keyboard.Listen(Key.Up, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
174        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
175        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, liikuta, "Pelaaja liikkuu vasemmalle", pelaaja1, -nopeus);
176        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, liikuta, "Pelaaja liikkuu oikealle", pelaaja1, nopeus);
177        ControllerOne.Listen(Button.A, ButtonState.Pressed, hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus); 
178   
179        }
180
181
182
183
184
185
186
187
188
189
190
191
192
193    }
194   
195     
196
197
198}
199
200
201
202
203
204
Note: See TracBrowser for help on using the repository browser.