source: 2010/24/olpesasa/Linnapako/Peli.cs @ 919

Revision 919, 6.5 KB checked in by anlakane, 10 years ago (diff)

Sain piikkipallot toimimaan ja tein lisää kenttiä.

Line 
1using System;
2using Jypeli;
3using Jypeli.ScreenObjects;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7{
8    PhysicsObject seina;
9    PhysicsObject pelaaja;
10    PhysicsObject piikki1;
11    PhysicsObject maali;
12    PhysicsObject piikkipallo;
13    int kentanNro;
14    const int ruudunLeveys = 50;
15    const int ruudunKorkeus = 50;
16
17    protected override void Begin()
18    {
19        //TODO: Alusta peli tässä
20        Ohjaimet ();
21        //LuoKentta1();
22        SeuraavaKentta(1);
23    }
24    void Ohjaimet()
25    {
26        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-200, 0));
27        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(200, 0));
28        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 200));
29        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -200));
30        Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
31        Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
32        Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
33        Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
34        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
35        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
36    }
37
38    void LiikutaPelaajaa(Vector vektori)
39    {
40        pelaaja.Velocity = vektori;
41    }
42    void PysaytaPelaaja(Vector vektori)
43    {
44        pelaaja.Stop(); 
45    }
46
47    PhysicsObject LuoPelaaja()
48    {
49        pelaaja = new PhysicsObject(40.0, 40.0);
50        pelaaja.Shape = Shapes.Circle;
51        pelaaja.Image = LoadImage("pelihahmo1");
52        AddCollisionHandler(pelaaja, PelaajanTormays);
53        pelaaja.Restitution = 0;
54        pelaaja.StaticFriction = 0;
55        pelaaja.KineticFriction = 0;
56        return pelaaja;
57    }
58    PhysicsObject LuoPiikkipallo()
59    {
60        piikkipallo = new PhysicsObject(40.0, 40.0);
61        piikkipallo.Shape = Shapes.Circle;
62        piikkipallo.Image = LoadImage("piikkipallo");
63        Vector impulssi = new Vector(500.0, 0.0);
64        piikkipallo.Hit(impulssi);
65        piikkipallo.KineticFriction = 0;
66        piikkipallo.CanRotate = false;
67        piikkipallo.Restitution = 1;
68        piikkipallo.IgnoresCollisionResponse = true;
69        AddCollisionHandler(piikkipallo, PallonTormays);
70        piikkipallo.Tag = "p";
71        return piikkipallo;
72    }
73    PhysicsObject LuoSeina()
74    {
75        seina = PhysicsObject.CreateStaticObject(50.0, 50.0);
76        seina.Shape = Shapes.Rectangle;
77        seina.Image = LoadImage("seina1");
78        seina.Tag = "seina";
79        return seina;
80    }
81    PhysicsObject LuoPiikki1()
82    {
83        piikki1 = PhysicsObject.CreateStaticObject(50.0, 50.0);
84        piikki1.Shape = Shapes.Rectangle;
85        piikki1.Image = LoadImage("piikkiseina1");
86        piikki1.Tag = "piikki1";
87        return piikki1;
88    }
89    PhysicsObject LuoMaali()
90    {
91        maali = PhysicsObject.CreateStaticObject(50.0, 50.0);
92        maali.Shape = Shapes.Rectangle;
93        maali.Image = LoadImage("maali");
94        maali.Tag = "maali";
95        return maali;
96    }
97
98    void LuoKentta1()
99    {
100        TileMap ruudut = TileMap.FromFile("kentta1.txt");
101        ruudut['v'] = LuoPiikkipallo;
102        ruudut['x'] = LuoSeina;
103        ruudut['1'] = LuoPelaaja;
104        ruudut['p'] = LuoPiikki1;
105        ruudut['m'] = LuoMaali;
106        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
107        Camera.ZoomToLevel();
108    }
109    void LuoKentta2()
110    {
111        TileMap ruudut = TileMap.FromFile("kentta2.txt");
112        ruudut['v'] = LuoPiikkipallo;
113        ruudut['x'] = LuoSeina;
114        ruudut['1'] = LuoPelaaja;
115        ruudut['p'] = LuoPiikki1;
116        ruudut['m'] = LuoMaali;
117        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
118        Camera.ZoomToLevel();
119    }
120    void LuoKentta3()
121    {
122        TileMap ruudut = TileMap.FromFile("kentta3.txt");
123        ruudut['v'] = LuoPiikkipallo;
124        ruudut['x'] = LuoSeina;
125        ruudut['1'] = LuoPelaaja;
126        ruudut['p'] = LuoPiikki1;
127        ruudut['m'] = LuoMaali;
128        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
129        Camera.ZoomToLevel();
130    }
131    void LuoKentta4()
132    {
133        TileMap ruudut = TileMap.FromFile("kentta4.txt");
134        ruudut['v'] = LuoPiikkipallo;
135        ruudut['x'] = LuoSeina;
136        ruudut['1'] = LuoPelaaja;
137        ruudut['p'] = LuoPiikki1;
138        ruudut['m'] = LuoMaali;
139        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
140        Camera.ZoomToLevel();
141    }
142    void LuoKentta5()
143    {
144        TileMap ruudut = TileMap.FromFile("kentta5.txt");
145        ruudut['v'] = LuoPiikkipallo;
146        ruudut['x'] = LuoSeina;
147        ruudut['1'] = LuoPelaaja;
148        ruudut['p'] = LuoPiikki1;
149        ruudut['m'] = LuoMaali;
150        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
151        Camera.ZoomToLevel();
152    }
153    void LuoKentta6()
154    {
155        TileMap ruudut = TileMap.FromFile("kentta6.txt");
156        ruudut['v'] = LuoPiikkipallo;
157        ruudut['x'] = LuoSeina;
158        ruudut['1'] = LuoPelaaja;
159        ruudut['p'] = LuoPiikki1;
160        ruudut['m'] = LuoMaali;
161        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
162        Camera.ZoomToLevel();
163    }
164    void PelaajanTormays(PhysicsObject pelaaja, PhysicsObject kohde)
165    {
166        if (kohde.Tag.ToString() == "piikki1")
167        {
168            AloitaAlusta();
169        }
170        else if (kohde.Tag.ToString() == "p")
171        {
172            AloitaAlusta();
173        }
174        else if (kohde.Tag.ToString() == "maali")
175        {
176            kentanNro++;
177            SeuraavaKentta(kentanNro);
178        }
179    }
180    void PallonTormays(PhysicsObject piikkipallo, PhysicsObject kohde)
181    {
182        if (kohde.Tag.ToString() == "seina")
183        {
184            piikkipallo.Velocity = new Vector(-piikkipallo.Velocity.X, piikkipallo.Velocity.Y);
185        }
186    }
187    void AloitaAlusta()
188    {
189
190        ClearAll();
191        Ohjaimet();
192        SeuraavaKentta(kentanNro);
193    }
194    void SeuraavaKentta(int kentta)
195    {
196        ClearAll();
197        if (kentta == 1) LuoKentta1();
198        else if (kentta == 2) LuoKentta2();
199        else if (kentta == 3) LuoKentta3();
200        else if (kentta == 4) LuoKentta4();
201        else if (kentta == 5) LuoKentta5();
202        else if (kentta == 6) LuoKentta6();
203
204        Ohjaimet();
205
206    }
207
208}
Note: See TracBrowser for help on using the repository browser.