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

Revision 1909, 5.3 KB checked in by maiilomo, 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;
8
9public class Peli : PhysicsGame //joonas Pöntinen
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 = -6100;
86        ukko.Y = -350;
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            Label teksti = new Label("Game Over");
156            teksti.X = Screen.Right - 800;
157            teksti.Y = Screen.Top - 400;
158            teksti.TextColor = Color.Black;
159           
160            Add(teksti);
161
162            }
163        }
164
165        else if (kohde.Tag.ToString() == "Piste")
166        {
167            kohde.Destroy();
168
169            pisteLaskuri.Value += 1;
170        }
171       
172
173
174    }
175    void CounterTNT()
176    {
177        Gravity = new Vector(0, 800);
178       
179    }
180   
181
182    void LuoLaskuri()
183    {
184        pisteLaskuri = new IntMeter(0);
185
186        Label pisteNaytto = new Label();
187        pisteNaytto.X = Screen.Left + 100;
188        pisteNaytto.Y = Screen.Top - 100;
189        pisteNaytto.TextColor = Color.Green;
190
191        pisteNaytto.BindTo(pisteLaskuri);
192        Add(pisteNaytto);
193    }
194    void CounterGravity()
195    {
196        Gravity = new Vector(0, -1000);
197
198    }
199   
200
201    void LuoLaskuri2()
202    {
203        pisteLaskuri2 = new IntMeter(1);
204        pisteLaskuri2.MinValue = 0;
205        Label pisteNaytto2 = new Label();
206        pisteNaytto2.X = Screen.Left + 300;
207        pisteNaytto2.Y = Screen.Top - 100;
208        pisteNaytto2.TextColor = Color.Red;
209
210        pisteNaytto2.BindTo(pisteLaskuri2);
211        Add(pisteNaytto2);
212    }
213
214   
215 
216
217
218
219   
220        }
221       
Note: See TracBrowser for help on using the repository browser.