source: 2013/30/TapaniS/Cat of Darkness/Cat of Darkness/Cat of Darkness/Cat_of_Darkness.cs @ 4634

Revision 4634, 8.0 KB checked in by tasalmik, 6 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 Cat_of_Darkness : PhysicsGame
10{
11    private Animation MiukkunLiike;
12    private Animation MiukkunLepo;
13    private Animation Miukkunhyppy;
14    private Animation RottaIsku;
15    private Animation RottaLiikkuu;
16    private Animation MiukkunIsku;
17    private Animation JattiRottaIsku;
18    private Animation JattiRottaLepo;
19    private Animation JattiRottaLiikkuu;
20
21    Image[] RottaKuvat = LoadImages("Rotta", "Rotta1");
22    DoubleMeter elamaLaskuri;
23    DoubleMeter bossiLaskuri;
24
25    PlatformCharacter miukku;
26    PlatformCharacter Jattirotta;
27    Timer ajastin;
28
29
30    public override void Begin()
31    {
32        MiukkunLiike = LoadAnimation("MiukkunLiike");
33        MiukkunLepo = LoadAnimation("MiukkunLepo");
34        Miukkunhyppy = LoadAnimation("MiukkunHyppy");
35        RottaIsku = new Animation(RottaKuvat);
36        RottaLiikkuu = LoadAnimation("RottaLiikkuu");
37        MiukkunIsku = LoadAnimation("MiukkunIsku");
38        JattiRottaIsku = LoadAnimation("JattiRottaIsku");
39        JattiRottaLepo = LoadAnimation("JattiRottaLepo");
40        JattiRottaLiikkuu = LoadAnimation("JattiRottaLiikkuu");
41        JattiRottaIsku.FPS = 3;
42
43        AlkuValikko();
44    }
45
46
47   void AlotaPeli()
48    {
49       
50
51
52        Image taustaKuva = LoadImage("Kenttä 1");
53        Level.Background.Image = taustaKuva;
54        Level.Background.FitToLevel();
55        Camera.ZoomToLevel();
56
57        PhysicsObject oikeareuna = PhysicsObject.CreateStaticObject(5.0, 800.0);
58        oikeareuna.Shape = Shape.Rectangle;
59        Add(oikeareuna);
60        oikeareuna.Color = Color.Black;
61        oikeareuna.X = 500;
62
63        PhysicsObject vasenreuna = PhysicsObject.CreateStaticObject(5.0, 800.0);
64        vasenreuna.Shape = Shape.Rectangle;
65        Add(vasenreuna);
66        vasenreuna.Color = Color.Black;
67        vasenreuna.X = -500;
68
69        PhysicsObject kirjahylly = PhysicsObject.CreateStaticObject(130.0, 70.0);
70        Add(kirjahylly);
71        kirjahylly.Y = -190;
72        kirjahylly.X = 437;
73        kirjahylly.Color = Color.Transparent;
74
75
76        PhysicsObject palkki = PhysicsObject.CreateStaticObject(1000.0, 5.0);
77        palkki.Shape = Shape.Rectangle;
78        palkki.Y = -257;
79        Add(palkki);
80        palkki.Color = Color.Transparent;
81
82        PhysicsObject tuoli = PhysicsObject.CreateStaticObject(71.0, 30);
83        tuoli.Shape = Shape.Rectangle;
84        tuoli.Y = -187;
85        tuoli.X = -70;
86        Add(tuoli);
87        tuoli.Color = Color.Transparent;
88
89        Gravity = new Vector(0.0, -755.0);
90
91        miukku = new PlatformCharacter ( 100.0, 100.0);
92        miukku.Image = LoadImage("Miukkuli");
93        Add (miukku);
94        LiikutaMiukkua(miukku);
95        miukku.AnimWalk = MiukkunLiike;
96        miukku.AnimWalk.FPS = 6;
97        miukku.AnimIdle = MiukkunLepo;
98        miukku.AnimJump = Miukkunhyppy;
99        LuoElamaLaskuri();
100        AddCollisionHandler(miukku, "rotta", TormaaRottaan);
101        AddCollisionHandler(miukku, "JattiRotta", TormaaJattiRottaan);
102
103        ajastin = new Timer();
104        ajastin.Interval = 2;
105        ajastin.Timeout += LuoRotta;
106        ajastin.Start();
107        Timer.SingleShot(20, LuoJattiRotta);
108
109
110        PhoneBackButton.Listen(ConfirmExit, "Lopeta peli");
111        Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli");
112    }
113
114    void LiikutaMiukkua(PlatformCharacter miukku)
115    {
116     
117        Keyboard.Listen( Key.Left, ButtonState.Down, Liikuta, "Liikkuu vasemmalle", miukku, -150.0 );
118        Keyboard.Listen( Key.Right, ButtonState.Down, Liikuta, "Liikkuu oikealle", miukku, 150.0 );
119        Keyboard.Listen( Key.Up, ButtonState.Pressed, Hyppaa, "Pelaaja hyppää", miukku, 700.0 );
120        Keyboard.Listen(Key.Space, ButtonState.Pressed, Iske, "Pelaaja iskee", miukku);
121
122    }
123    void Liikuta(PlatformCharacter miukku, double nopeus)
124
125    {
126        miukku.Walk(nopeus);
127
128    }
129
130    void Iske(PlatformCharacter miukku)
131    {
132        PhysicsObject osuma = PhysicsObject.CreateStaticObject(30.0, 50.0);
133        osuma.Position = miukku.Position + miukku.FacingDirection.GetVector() * 70;
134        osuma.IgnoresCollisionResponse = false;
135        osuma.Color = Color.Transparent;
136
137        Add(osuma);
138        MiukkunIsku.FPS = 6;
139        miukku.PlayAnimation(MiukkunIsku);
140        Timer.SingleShot(0.1, osuma.Destroy);
141        AddCollisionHandler(osuma, "rotta", OsuRottaan);
142        AddCollisionHandler(osuma, "JattiRotta", OsuJattiRottaan);
143
144    }
145
146    void Hyppaa( PlatformCharacter miukku, double nopeus )
147    {
148        miukku.Jump(nopeus);
149    }
150
151    void OsuRottaan(PhysicsObject osuma, PhysicsObject rotta)
152    {
153        rotta.Destroy();
154    }
155
156    void LuoRotta()
157    {
158        PlatformCharacter rotta = new PlatformCharacter(70.0, 70.0);
159        rotta.AnimIdle = RottaIsku;
160        rotta.AnimIdle.FPS = 6;
161        rotta.AnimWalk = RottaLiikkuu;
162        rotta.AnimWalk.FPS = 6;
163        Add(rotta);
164        rotta.Tag = "rotta";
165        rotta.Y = -250;
166
167        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
168        tasoAivot.Speed = 100;
169
170        rotta.Brain = tasoAivot;
171
172        tasoAivot.FallsOffPlatforms = true;
173        tasoAivot.JumpSpeed = 300;
174        tasoAivot.TriesToJump = true;
175
176
177
178    }
179
180    void LuoElamaLaskuri()
181    {
182        elamaLaskuri = new DoubleMeter(10);
183        elamaLaskuri.MaxValue = 10;
184        elamaLaskuri.LowerLimit += ElamaLoppui;
185
186        ProgressBar elamaPalkki = new ProgressBar(150, 20);
187        elamaPalkki.X = Screen.Left + 150;
188        elamaPalkki.Y = Screen.Top - 20;
189        elamaPalkki.BindTo(elamaLaskuri);
190        Add(elamaPalkki);
191    }
192
193    void ElamaLoppui()
194    {
195        MessageDisplay.Add("Elämät loppuivat, voi voi.");
196        miukku.Destroy();
197        Timer.SingleShot(2,AlkuValikko);
198    }
199
200    void TormaaRottaan(PhysicsObject miukku, PhysicsObject rotta )
201    {
202        elamaLaskuri.Value--;
203    }
204
205    void AlkuValikko()
206    {
207        ClearAll();
208        MultiSelectWindow alkuValikko = new MultiSelectWindow("Pelin alkuvalikko", "Aloita peli", "Parhaat pisteet", "Lopeta");
209        Add(alkuValikko);
210        alkuValikko.AddItemHandler(0, AlotaPeli);
211        //alkuValikko.AddItemHandler(1, ParhaatPisteet);
212        alkuValikko.AddItemHandler(2, Exit);
213
214
215    }
216    void LuoJattiRotta()
217    {
218        ajastin.Stop();
219
220        Jattirotta = new PlatformCharacter(170.0, 170.0);
221        Jattirotta.AnimIdle = JattiRottaLepo;
222        Jattirotta.AnimIdle.FPS = 6;
223        Jattirotta.AnimWalk = JattiRottaLiikkuu;
224        Jattirotta.AnimWalk.FPS = 6;
225        Add(Jattirotta);
226        Jattirotta.Tag = "JattiRotta";
227        Jattirotta.Y = -200;
228        Jattirotta.X = 300;
229
230        PlatformWandererBrain tasoAivot = new PlatformWandererBrain();
231        tasoAivot.Speed = 80;
232
233        Jattirotta.Brain = tasoAivot;
234
235        tasoAivot.FallsOffPlatforms = true;
236        tasoAivot.JumpSpeed = 500;
237        tasoAivot.TriesToJump = true;
238        LuoBossiLaskuri();
239    }
240    void TormaaJattiRottaan(PhysicsObject miukku, PhysicsObject JattiRotta)
241    {
242        elamaLaskuri.Value-=2;
243        Jattirotta.PlayAnimation(JattiRottaIsku);
244
245    }
246    void LuoBossiLaskuri()
247    {
248        bossiLaskuri = new DoubleMeter(10);
249        bossiLaskuri.MaxValue = 10;
250        bossiLaskuri.LowerLimit += ElamaLoppui;
251
252        ProgressBar bossiPalkki = new ProgressBar(150, 20);
253        bossiPalkki.X = Screen.Right - 150;
254        bossiPalkki.Y = Screen.Top - 20;
255        bossiPalkki.BindTo(bossiLaskuri);
256        Add(bossiPalkki);
257    }
258
259    void OsuJattiRottaan(PhysicsObject osuma, PhysicsObject jattirotta)
260    {
261        bossiLaskuri.Value--;
262    }
263
264    void BossiKuoli()
265    {
266        MessageDisplay.Add("JättiRotta piesty! siirryt seuraavaan leveliin.");
267        Jattirotta.Destroy();
268
269    }
270
271
272
273
274}
Note: See TracBrowser for help on using the repository browser.