source: 2010/30/veseruod/Peli.cs @ 1458

Revision 1458, 4.7 KB checked in by paaaanro, 11 years ago (diff)
Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : TopDownPhysicsGame
7
8{
9    PhysicsObject avain;
10    Image avainkuva = LoadImage("avain");
11    PhysicsObject jatka;
12    double nopeus = 300;
13    PhysicsObject ovi;
14    PhysicsObject reika;
15    Image jatkankuva = LoadImage("jatka");
16    Image taustaKuva = LoadImage("huone");
17    Image rotankuva = LoadImage("rotta");
18    Image ovikuva = LoadImage("ovi");
19    Image reikakuva = LoadImage("reikä");
20
21    protected override void Begin()
22    {
23        LuoKentta();
24        LuoAvain();
25        MessageDisplay.Add("Etsi avain päästäksesi ulos... Ja varo sekä rottia että reikiä. Varsinkin reikiä!");
26        AddCollisionHandler(avain, AvaimenKeraus);
27        LuoPelaaja();
28        AsetaOhjaimet();
29        LuoRotta();
30        LuoRotta();
31        LuoRotta();
32        LuoRotta();
33        LuoOvi();
34        LuoReika();
35        LuoReika();
36        LuoReika();
37        AddCollisionHandler(ovi, Ovenavaus);
38        AddCollisionHandler(reika, reikaanTippuminen);
39     
40    }
41
42    void LuoKentta()
43    {
44       
45        Level.Background.Image = taustaKuva;
46        Level.Background.FitToLevel();
47        Level.CreateBorders(1.0, false);
48        Camera.ZoomToLevel();
49    }
50
51    void LuoPelaaja()
52    {       
53        jatka = new PhysicsObject(45.0, 45.0);
54        jatka.Shape = Shapes.Circle;
55        jatka.LinearDamping = 0.97;
56        jatka.KineticFriction = 0.5;
57        jatka.Image = jatkankuva;
58        Add(jatka);
59     
60    }
61
62    void AsetaOhjaimet()
63    {
64        Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Pelaaja Liikkuu Vasemmalle", new Vector(-nopeus, 0));
65        Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Pelaaja Liikkuu Oikealle", new Vector(nopeus, 0));
66        Keyboard.Listen(Key.Down, ButtonState.Down, AsetaNopeus, "Pelaaja Liikkuu Alas", new Vector(0, -nopeus));
67        Keyboard.Listen(Key.Up, ButtonState.Down, AsetaNopeus, "Pelaaja Liikkuu Ylos", new Vector(0, nopeus));
68    }
69
70    void AsetaNopeus(Vector nopeus)
71    {
72        jatka.Push(nopeus);
73    }
74    void LuoRotta()
75    {
76        PhysicsObject rotta = new PhysicsObject(200, 40);
77        rotta.Shape = Shapes.Rectangle;
78        FollowerBrain seuraajanAivot = new FollowerBrain(jatka);
79        seuraajanAivot.Target = jatka;
80        seuraajanAivot.FollowAlways = true;
81        seuraajanAivot.Active = true;
82        rotta.Brain = seuraajanAivot;
83        seuraajanAivot.MovingSpeed = 50;
84        Add(rotta);
85        AddCollisionHandler(rotta, KasittelerotanTormays);
86        rotta.X = RandomGen.NextDouble(Level.Left, Level.Right);
87        rotta.Y = RandomGen.NextDouble(Level.Top, Level.Bottom);
88        rotta.Image = rotankuva;
89    }
90
91    void KasittelerotanTormays(PhysicsObject rotta, PhysicsObject kohde)
92    {
93        if (kohde == jatka)
94        {
95            MessageDisplay.Add("Olet rotan ruokaa.");
96            jatka.Destroy();
97        }
98    }
99
100    void LuoAvain()
101    {
102        avain = new PhysicsObject(100, 20);
103        avain.Shape = Shapes.Rectangle;
104        avain.Mass = 3.0;
105        avain.X = RandomGen.NextDouble(Level.Left, Level.Right);
106        avain.Y = RandomGen.NextDouble(Level.Left, Level.Right);
107        Add(avain);
108        avain.Image = avainkuva;
109    }
110    void AvaimenKeraus(PhysicsObject avain, PhysicsObject kohde)
111    {
112        if (kohde == jatka)
113        {
114            avain.Destroy();
115            MessageDisplay.Add("Löysit avaimen! Hienoa! Nyt juokse Ulos ovesta ennen kuin rotat syövät sinut.");
116        }
117    }
118    void LuoOvi()
119     {
120        ovi = PhysicsObject.CreateStaticObject(100, 200);
121        ovi.Shape = Shapes.Rectangle;
122        Add(ovi);
123        ovi.Image = ovikuva;
124        ovi.X = (200);
125        ovi.Y = (299);
126     }
127    void Ovenavaus(PhysicsObject ovi, PhysicsObject kohde)
128    {
129        if (avain.IsDestroyed() && kohde == jatka)
130        {
131        kohde.Destroy();
132        MessageDisplay.Add("Voitit pelin! 0nneksi olkoon!");
133        }
134    }
135
136    void LuoReika()
137    {
138        reika = PhysicsObject.CreateStaticObject(100, 100);
139        reika.Shape = Shapes.Rectangle;
140        Add(reika);
141        reika.X = RandomGen.NextDouble(Level.Left, Level.Right);
142        reika.Y = RandomGen.NextDouble(Level.Top, Level.Bottom);
143        reika.Image = reikakuva;
144    }
145    void reikaanTippuminen(PhysicsObject reika, PhysicsObject kohde)
146    {
147        kohde.Destroy();
148
149        if (kohde == jatka)
150        {
151            MessageDisplay.Add("kuolit");
152        }
153        else
154        {
155            MessageDisplay.Add("rotta kuoli");
156        }
157    }
158   
159
160
161   
162}
163 
Note: See TracBrowser for help on using the repository browser.