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

Revision 4950, 6.8 KB checked in by urpynnon, 5 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
62    void LuoKentta()
63    {
64
65
66
67        TileMap kentta1 = TileMap.FromLevelAsset("kentta1");
68        kentta1.SetTileMethod('#', LisaaTaso);
69        kentta1.SetTileMethod('*', LisaaTahti);
70        kentta1.SetTileMethod('P', LisaaPelaaja1);
71        kentta1.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
72        Level.CreateBorders();
73        Level.Background.CreateGradient(Color.MediumBlue, Color.MediumBlue);
74    }
75
76
77
78    void LuoKentta2()
79    {
80
81
82
83        TileMap kentta2 = TileMap.FromLevelAsset("kentta2");
84        kentta2.SetTileMethod('#', LisaaTaso);
85        kentta2.SetTileMethod('*', LisaaTahti);
86        kentta2.SetTileMethod('P', LisaaPelaaja1);
87        kentta2.Execute(RUUDUN_KOKO, RUUDUN_KOKO);
88        Level.CreateBorders();
89        Level.Background.CreateGradient(Color.MediumBlue, Color.MediumBlue);
90    }
91
92
93
94
95
96    void LisaaTaso(Vector paikka, double leveys, double korkeus)
97    {
98        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
99        taso.Position = paikka;
100        taso.Color = Color.Black;
101        Add(taso);
102    }
103
104    void LisaaTahti(Vector paikka, double leveys, double korkeus)
105    {
106        PhysicsObject tahti = PhysicsObject.CreateStaticObject(leveys, korkeus);
107        tahti.IgnoresCollisionResponse = true;
108        tahti.Position = paikka;
109        tahti.Image = tahtiKuva;
110        tahti.Tag = "tahti";
111        Add(tahti);
112    }
113
114    void LisaaPelaaja1(Vector paikka, double leveys, double korkeus)
115    {
116        pelaaja1 = new PlatformCharacter(leveys, korkeus);
117        pelaaja1.Position = paikka;
118        pelaaja1.Mass = 4.0;
119        pelaaja1.Image = pelaajanKuva1;
120        AddCollisionHandler(pelaaja1, "tahti", TormaaTahteen);
121        Add(pelaaja1);
122    }
123
124   
125
126
127    void LisaaNappaimet()
128    {
129        ControllerOne.Listen(Button.Y, ButtonState.Down, eipause, "Aloita alusta");
130        Keyboard.Listen(Key.R, ButtonState.Down, eipause, "Aloita alusta");
131
132        Keyboard.Listen(Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
133        ControllerOne.Listen(Button.DPadLeft, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
134        ControllerOne.Listen(Button.LeftTrigger, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", pelaaja1, -nopeus);
135        ControllerOne.Listen(Button.RightTrigger, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
136        Keyboard.Listen(Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
137        ControllerOne.Listen(Button.DPadRight, ButtonState.Down, Liikuta, "Liikkuu oikealle", pelaaja1, nopeus);
138        Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
139        ControllerOne.Listen(Button.DPadUp, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
140        ControllerOne.Listen(Button.A, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", pelaaja1, hyppyNopeus);
141        ControllerOne.Listen(Button.Back, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
142        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
143        ControllerOne.Listen(Button.Start, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
144        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
145        ControllerOne.Listen(Button.Y, ButtonState.Down, Begin, "Aloita alusta");
146        Keyboard.Listen(Key.R, ButtonState.Down, Begin, "Aloita alusta");
147        ControllerOne.Listen(Button.A, ButtonState.Pressed, AloitaPeli, "Aloita Peli" );
148       
149       
150       
151       
152           
153
154
155        ControllerOne.Listen(Button.Back, ButtonState.Pressed, Exit, "Poistu pelistä");
156
157
158
159        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
160    }
161
162    void Liikuta(PlatformCharacter hahmo, double nopeus)
163    {
164        hahmo.Walk(nopeus);
165    }
166
167   
168
169
170
171    void Hyppaa(PlatformCharacter hahmo, double nopeus)
172    {
173        hahmo.Jump(nopeus);
174    }
175
176    void TormaaTahteen(PhysicsObject hahmo, PhysicsObject tahti)
177    {
178
179        MessageDisplay.Add("Keräsit tähden!");
180        tahti.Destroy();
181        pisteLaskuri.Value += 1;
182    }
183
184
185    IntMeter pisteLaskuri;
186
187    void LuoPistelaskuri()
188    {
189        pisteLaskuri = new IntMeter(0);
190
191        Label pisteNaytto = new Label();
192        pisteNaytto.X = Screen.Right - 100;
193        pisteNaytto.Y = Screen.Top - 100;
194        pisteNaytto.TextColor = Color.Black;
195        pisteNaytto.Color = Color.White;
196
197        pisteNaytto.BindTo(pisteLaskuri);
198        Add(pisteNaytto);
199        pisteNaytto.Title = "Tähdet";
200        pisteLaskuri.AddTrigger(12, TriggerDirection.Up, KaikkiKeratty);
201
202
203    }
204
205
206
207
208    void LuoAikaLaskuri()
209    {
210        Timer aikaLaskuri = new Timer();
211        aikaLaskuri.Interval = 40;
212        aikaLaskuri.Timeout += AikaLoppui;
213        aikaLaskuri.Start(1);
214
215        Label aikaNaytto = new Label();
216        aikaNaytto.TextColor = Color.White;
217        aikaNaytto.DecimalPlaces = 1;
218        aikaNaytto.BindTo(aikaLaskuri.SecondCounter);
219        Add(aikaNaytto);
220        pelaaja1.LifetimeLeft = TimeSpan.FromSeconds(40.0);
221    }
222
223
224    void AikaLoppui()
225    {
226        MessageDisplay.Add("Aika loppui...");
227
228        pause();
229     
230    }
231
232    void pause()
233
234    {
235        IsPaused = true;
236    }
237
238    void eipause()
239    {
240        IsPaused = false;
241    }
242
243    void AloitaPeli()
244
245    {
246
247    }
248
249    void KaikkiKeratty()
250{
251    MessageDisplay.Add("voitit pelin.");
252
253    pause();
254}
255
256   
257}
Note: See TracBrowser for help on using the repository browser.