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

Revision 889, 4.1 KB checked in by anlakane, 10 years ago (diff)

Tein piikkiseinän ja sain seinät pysymään paikallaan.

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 piikki;
11
12    protected override void Begin()
13    {
14        //TODO: Alusta peli tässä
15        Ohjaimet ();
16        LuoPelaaja();
17        LuoKentta();
18    }
19    void Ohjaimet()
20    {
21        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, new Vector(-10, 0));
22        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa, null, new Vector(10, 0));
23        Keyboard.Listen(Key.Up, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, 10));
24        Keyboard.Listen(Key.Down, ButtonState.Down, LiikutaPelaajaa, null, new Vector(0, -10));
25        Keyboard.Listen(Key.Left, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
26        Keyboard.Listen(Key.Right, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
27        Keyboard.Listen(Key.Up, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
28        Keyboard.Listen(Key.Down, ButtonState.Released, PysaytaPelaaja, null, new Vector(0, 0));
29        Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet");
30        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
31    }
32
33    void LiikutaPelaajaa(Vector vektori)
34    {
35        pelaaja.Hit(vektori);
36    }
37    void PysaytaPelaaja(Vector vektori)
38    {
39        pelaaja.Stop(); 
40    }
41
42    void LuoPelaaja()
43    {
44        pelaaja = new PhysicsObject(40.0, 40.0);
45        pelaaja.Shape = Shapes.Circle;
46        pelaaja.Image = LoadImage("pelihahmo1");
47        Add(pelaaja);
48        AddCollisionHandler(pelaaja, PelaajanTormays);
49    }
50    void LuoSeina(Double x, Double y)
51    {
52        seina = PhysicsObject.CreateStaticObject(50.0, 50.0);
53        seina.Shape = Shapes.Rectangle;
54        seina.Image = LoadImage("seina1");
55        seina.X = x;
56        seina.Y= y;
57        Add(seina);
58    }
59    void LuoPiikki(Double x, Double y)
60    {
61        piikki = PhysicsObject.CreateStaticObject(50.0, 50.0);
62        piikki.Shape = Shapes.Rectangle;
63        piikki.Image = LoadImage("piikkiseina1");
64        piikki.X = x;
65        piikki.Y = y;
66        Add(piikki);
67    }
68    void LuoKentta()
69    {
70        LuoSeina(-100.0, 100.0);
71        LuoSeina(-350.0, 100.0);
72        LuoSeina(-400.0, 100.0);
73        LuoSeina(-450.0, 100.0);
74        LuoSeina(-150.0, 100.0);
75        LuoSeina(-200.0, 100.0);
76        LuoSeina(-250.0, 100.0);
77        LuoSeina(-300.0, 100.0);
78        LuoSeina(-500.0, 100.0);
79        LuoSeina(-550.0, 100.0);
80        LuoSeina(-600.0, 100.0);
81        LuoSeina(-650.0, 100.0);
82        LuoSeina(-100.0, -50.0);
83        LuoSeina(-100.0, -100.0);
84        LuoSeina(-150.0, -100.0);
85        LuoSeina(-200.0, -100.0);
86        LuoSeina(-250.0, -100.0);
87        LuoSeina(-300.0, -100.0);
88        LuoSeina(-350.0, -100.0);
89        LuoSeina(-400.0, -100.0);
90        LuoSeina(-450.0, -100.0);
91        LuoSeina(-500.0, -100.0);
92        LuoSeina(-550.0, -100.0);
93        LuoSeina(-600.0, -100.0);
94
95        LuoSeina(100.0, 100.0);
96        LuoSeina(350.0, 100.0);
97        LuoSeina(400.0, 100.0);
98        LuoSeina(450.0, 100.0);
99        LuoSeina(150.0, 100.0);
100        LuoSeina(200.0, 100.0);
101        LuoSeina(250.0, 100.0);
102        LuoSeina(300.0, 100.0);
103        LuoSeina(500.0, 100.0);
104        LuoSeina(550.0, 100.0);
105        LuoSeina(600.0, 100.0);
106        LuoSeina(650.0, 100.0);
107        LuoSeina(100.0, -50.0);
108        LuoSeina(100.0, -100.0);
109        LuoSeina(150.0, -100.0);
110        LuoSeina(200.0, -100.0);
111        LuoSeina(250.0, -100.0);
112        LuoSeina(300.0, -100.0);
113        LuoSeina(350.0, -100.0);
114        LuoSeina(400.0, -100.0);
115        LuoSeina(450.0, -100.0);
116        LuoSeina(500.0, -100.0);
117        LuoSeina(550.0, -100.0);
118        LuoSeina(600.0, -100.0);
119        LuoPiikki(100.0, -150.0);
120    }
121    void PelaajanTormays(PhysicsObject pelaaja, PhysicsObject kohde)
122    {
123        if (kohde == piikki)
124        {
125            pelaaja.X = 0;
126            pelaaja.Y = 0;
127            pelaaja.Stop();
128        }
129    }
130
131}
Note: See TracBrowser for help on using the repository browser.