source: 2011/23/jopontin/skate peli.cs @ 1876

Revision 1876, 5.2 KB checked in by maiilomo, 12 years ago (diff)
Line 
1using System;
2using System.Collections.Generic;
3using Jypeli;
4using Jypeli.Assets;
5using Jypeli.Controls;
6using Jypeli.Effects;
7using Jypeli.Widgets;
8
9public class Peli : PhysicsGame
10{
11    const int ruudunLeveys = 20;
12    const int ruudunKorkeus = 20;
13    IntMeter pisteLaskuri2;
14    IntMeter pisteLaskuri;
15    PhysicsObject TNT;
16    Image raha = LoadImage("Coin");
17    Image kuva = LoadImage("potato");
18    Image EMT = LoadImage("TNT");
19    PlatformCharacter ukko;
20    public override void Begin()
21    {
22        LuoLaskuri();
23
24        LuoLaskuri2();
25       
26       
27       
28        Ohjaimet();
29        // TODO: Kirjoita ohjelmakoodisi tähän
30        LuoKentta();
31        Camera.Follow(ukko);
32
33    }
34
35    void Ohjaimet()
36    {
37        Keyboard.Listen(Key.Right, ButtonState.Down,
38            LiikutaUkkoOikealle, "ukko liikkuu vasemmalle");
39        Keyboard.Listen(Key.Up, ButtonState.Pressed,
40            LiikutaukkoYlos, "ukko liikkuu ylospain");
41        Keyboard.Listen(Key.Left, ButtonState.Down,
42          LiikutaUkkoVasemmalle, "ukko liikkuu vasemalle");
43        Keyboard.Listen(Key.Z, ButtonState.Pressed,
44         CounterTNT, "TNT ei rajahda");
45        Keyboard.Listen(Key.X, ButtonState.Pressed,
46       CounterGravity, "Chiiti loppuu");
47        Keyboard.Listen(Key.H, ButtonState.Pressed,
48      moreHealts, "Lisaa elamia");
49
50
51
52
53    }
54    void LiikutaUkkoOikealle()
55    {
56        //ukko.Push (new Vector(20000.0, 0.0));
57        ukko.Walk(400.0);
58    }
59    void LiikutaukkoYlos()
60    {
61        //ukko.Hit(new Vector(0.0, 100.0));
62        ukko.Jump(1000.0);
63
64
65    }
66    void LiikutaUkkoVasemmalle()
67    {
68        ukko.Walk(-400.0);
69    }
70
71    void moreHealts ()
72    { 
73        pisteLaskuri2.Value += 20;
74    }
75
76    void LuoKentta()
77    {
78        Level.BackgroundColor = Color.Turquoise;
79
80        ukko = new PlatformCharacter(80.0, 80.0);
81        ukko.Image = kuva;
82        ukko.CanMoveOnAir = true;
83        ukko.Mass = 1;
84        ukko.CanRotate = false;
85        ukko.X = -5800;
86        ukko.Y = -150;
87       
88        Add(ukko);
89
90       
91
92        AddCollisionHandler (ukko, KasitteleUkonTormays);
93
94
95       
96
97        Gravity = new Vector(0.0, -1000.0);
98
99        TileMap ruudut = TileMap.FromFile("teksti1.txt");
100        ruudut['a'] = LuoPalikka;
101        ruudut['b'] = LuoNakymatonSeina;
102        ruudut['c'] = LuoTNT;
103        ruudut['p'] = LuoPiste;
104        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
105
106
107    }
108
109    PhysicsObject LuoPalikka()
110    {
111        PhysicsObject palikka = PhysicsObject.CreateStaticObject(ruudunLeveys, ruudunKorkeus);
112        palikka.Shape = Shape.Rectangle;
113        palikka.Color = Color.Gray;
114        return palikka;
115    }
116    PhysicsObject LuoNakymatonSeina()
117    {
118        PhysicsObject seina = PhysicsObject.CreateStaticObject(ruudunLeveys, ruudunKorkeus);
119        seina.Shape = Shape.Rectangle;
120        seina.Color = Color.Turquoise;
121        return seina;
122    }
123    PhysicsObject LuoTNT()
124    {
125        PhysicsObject TNT = PhysicsObject.CreateStaticObject(ruudunLeveys, ruudunKorkeus);
126        TNT.Shape = Shape.Rectangle;
127        TNT.Color = Color.Red;
128        TNT.Tag = "LOL";
129        TNT.Image = EMT;
130        return TNT;
131
132    }
133    PhysicsObject LuoPiste()
134    {
135        PhysicsObject piste = PhysicsObject.CreateStaticObject(ruudunLeveys, ruudunKorkeus);
136        piste.Tag = "Piste";
137        piste.Color = Color.Yellow;
138        piste.Shape = Shape.Circle;
139        piste.Image = raha;
140        return piste;
141     }
142    void KasitteleUkonTormays(PhysicsObject ukko, PhysicsObject kohde )
143    {
144        Explosion rajahdys = new Explosion( 200 );
145        rajahdys.Position = kohde.Position;
146        rajahdys.ShockwaveColor = Color.OrangeRed;
147        rajahdys.Force = 100;
148        if (kohde.Tag.ToString() == "LOL")
149        {
150            Add(rajahdys);
151            pisteLaskuri2.Value -= 1;
152
153            if (pisteLaskuri2.Value == 0) { ukko.Destroy();}
154        }
155
156        else if (kohde.Tag.ToString() == "Piste")
157        {
158            kohde.Destroy();
159
160            pisteLaskuri.Value += 1;
161        }
162       
163
164
165    }
166    void CounterTNT()
167    {
168        Gravity = new Vector(0, 800);
169       
170    }
171   
172
173    void LuoLaskuri()
174    {
175        pisteLaskuri = new IntMeter(0);
176
177        Label pisteNaytto = new Label();
178        pisteNaytto.X = Screen.Left + 100;
179        pisteNaytto.Y = Screen.Top - 100;
180        pisteNaytto.TextColor = Color.Green;
181
182        pisteNaytto.BindTo(pisteLaskuri);
183        Add(pisteNaytto);
184    }
185    void CounterGravity()
186    {
187        Gravity = new Vector(0, -1000);
188
189    }
190   
191
192    void LuoLaskuri2()
193    {
194        pisteLaskuri2 = new IntMeter(1);
195        pisteLaskuri2.MinValue = 0;
196        Label pisteNaytto2 = new Label();
197        pisteNaytto2.X = Screen.Left + 300;
198        pisteNaytto2.Y = Screen.Top - 100;
199        pisteNaytto2.TextColor = Color.Red;
200
201        pisteNaytto2.BindTo(pisteLaskuri2);
202        Add(pisteNaytto2);
203    }
204
205    void loppu()
206    {
207        Label gameover = new Label();
208        gameover.X = Screen.Center;
209        gameover.Y = Screen.Center;
210        gameover.Title = 'Game Over';
211        Add (gameover);
212    }
213 
214
215
216
217   
218        }
219       
Note: See TracBrowser for help on using the repository browser.