source: 2014/24/UrhoP/pallopeli1/pallopeli1/pallopeli1/pallopeli1.cs @ 4948

Revision 4948, 6.6 KB checked in by urpynnon, 8 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8using Jypeli.LevelEditor;
9public class pallopeli1 : PhysicsGame
10{
11    const double nopeus = 200;
12    const double hyppyNopeus = 800;
13    const int RUUDUN_KOKO = 40;
14
15    PlatformCharacter pelaaja1;
16
17
18
19    Image pelaajanKuva1 = LoadImage("pallo");
20    Image tahtiKuva = LoadImage("tahti");
21    Image pelaajanKuva2 = LoadImage("pallo1");
22
23   
24   
25
26    public override void Begin()
27    {
28       
29        ClearAll();
30
31        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko","Aloita peli1  A ", "Lopeta  B");
32        Add(alkuValikko);
33
34       
35        alkuValikko.AddItemHandler(0, LuoAikaLaskuri);
36        alkuValikko.AddItemHandler(0, AloitaPeli);
37
38       
39        alkuValikko.AddItemHandler(1, Exit);
40
41        alkuValikko.DefaultCancel = 1;
42
43       
44
45        Gravity = new Vector(0, -1000);
46
47       
48        LuoKentta();
49        LisaaNappaimet();
50        LuoPistelaskuri();
51
52        Camera.Follow(pelaaja1);
53        Camera.ZoomFactor = 1.2;
54        Camera.StayInLevel = true;
55
56        MessageDisplay.Add("Kerää kaikki 12 Tähteä");
57
58    }
59
60
61    void LuoKentta()
62    {
63
64
65
66        TileMap kentta1 = TileMap.FromLevelAsset("kentta1");
67        kentta1.SetTileMethod('#', LisaaTaso);
68        kentta1.SetTileMethod('*', LisaaTahti);
69        kentta1.SetTileMethod('P', LisaaPelaaja1);
70        kentta1.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
71        Level.CreateBorders();
72        Level.Background.CreateGradient(Color.MediumBlue, Color.MediumBlue);
73    }
74
75
76
77    void LuoKentta2()
78    {
79
80
81
82        TileMap kentta2 = TileMap.FromLevelAsset("kentta2");
83        kentta2.SetTileMethod('#', LisaaTaso);
84        kentta2.SetTileMethod('*', LisaaTahti);
85        kentta2.SetTileMethod('P', LisaaPelaaja1);
86        kentta2.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
87        Level.CreateBorders();
88        Level.Background.CreateGradient(Color.MediumBlue, Color.MediumBlue);
89    }
90
91
92
93
94
95    void LisaaTaso(Vector paikka, double leveys, double korkeus)
96    {
97        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
98        taso.Position = paikka;
99        taso.Color = Color.Black;
100        Add(taso);
101    }
102
103    void LisaaTahti(Vector paikka, double leveys, double korkeus)
104    {
105        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
106        tahti.IgnoresCollisionResponse = true;
107        tahti.Position = paikka;
108        tahti.Image = tahtiKuva;
109        tahti.Tag = "tahti";
110        Add(tahti);
111    }
112
113    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus)
114    {
115        pelaaja1 = new PlatformCharacter(leveys, korkeus);
116        pelaaja1.Position = paikka;
117        pelaaja1.Mass = 4.0;
118        pelaaja1.Image = pelaajanKuva1;
119        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
120        Add(pelaaja1);
121    }
122
123   
124
125
126    void LisaaNappaimet()
127    {
128        ControllerOne.Listen(Button.Y, ButtonState.Down, eipause, "Aloita alusta");
129
130        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
131        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
132        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
133        ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
134        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
135        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
136        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
137        ControllerOne.Listen(Button.DPadUp, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
138        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
139        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
140        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
141        ControllerOne.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
142        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
143        ControllerOne.Listen(Button.Y, ButtonState.Down, Begin, "Aloita alusta");
144        Keyboard.Listen(Key.R, ButtonState.Down, Begin, "Aloita alusta");
145        ControllerOne.Listen(Button.A, ButtonState.Pressed, AloitaPeli, "Aloita Peli" );
146       
147       
148       
149       
150           
151
152
153        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
154
155
156
157        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
158    }
159
160    void Liikuta(PlatformCharacter hahmo, double nopeus)
161    {
162        hahmo.Walk(nopeus);
163    }
164
165   
166
167
168
169    void Hyppaa(PlatformCharacter hahmo, double nopeus)
170    {
171        hahmo.Jump(nopeus);
172    }
173
174    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
175    {
176
177        MessageDisplay.Add("Keräsit tähden!");
178        tahti.Destroy();
179        pisteLaskuri.Value += 1;
180    }
181
182
183    IntMeter pisteLaskuri;
184
185    void LuoPistelaskuri()
186    {
187        pisteLaskuri = new IntMeter(0);
188
189        Label pisteNaytto = new Label();
190        pisteNaytto.X = Screen.Right - 100;
191        pisteNaytto.Y = Screen.Top - 100;
192        pisteNaytto.TextColor = Color.Black;
193        pisteNaytto.Color = Color.White;
194
195        pisteNaytto.BindTo(pisteLaskuri);
196        Add(pisteNaytto);
197        pisteNaytto.Title = "Tähdet";
198        pisteLaskuri.AddTrigger(12, TriggerDirection.Up, KaikkiKeratty);
199
200
201    }
202
203
204
205
206    void LuoAikaLaskuri()
207    {
208        Timer aikaLaskuri = new Timer();
209        aikaLaskuri.Interval = 40;
210        aikaLaskuri.Timeout += AikaLoppui;
211        aikaLaskuri.Start(1);
212
213        Label aikaNaytto = new Label();
214        aikaNaytto.TextColor = Color.White;
215        aikaNaytto.DecimalPlaces = 1;
216        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
217        Add(aikaNaytto);
218
219    }
220
221
222    void AikaLoppui()
223    {
224        MessageDisplay.Add("Aika loppui...");
225
226        pause();
227     
228    }
229
230    void pause()
231
232    {
233        IsPaused = true;
234    }
235
236    void eipause()
237    {
238        IsPaused = false;
239    }
240
241    void AloitaPeli()
242
243    {
244
245    }
246
247    void KaikkiKeratty()
248{
249    MessageDisplay.Add("voitit pelin.");
250}
251
252   
253}
Note: See TracBrowser for help on using the repository browser.