source: 2011/26/RoosaP/FindTheWay/FindTheWay/FindTheWay/Peli.cs @ 2383

Revision 2383, 6.5 KB checked in by rolipark, 12 years ago (diff)

Talletus.

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    ScoreList topLista = new ScoreList(5, false, 0);
12
13    PhysicsObject leppis;
14
15    Image kaveriKuva = LoadImage("kaveri");
16    Image kukkaKuva = LoadImage("kukkanen");
17    Image leppisKuva = LoadImage("leppis");
18    Image perhonenKuva = LoadImage("perhonen");
19    Image kukka2Kuva = LoadImage("kukka2");
20    Image haaviKuva = LoadImage("haavi");
21    Image sydanKuva = LoadImage("sydan");
22    IntMeter pisteLaskuri;
23
24    public override void Begin()
25    {
26        ClearAll();
27        Keyboard.Listen(Key.Left, ButtonState.Down,
28          LiikutaPelaajaa, null, new Vector(-1000, 0));
29        Keyboard.Listen(Key.Right, ButtonState.Down,
30          LiikutaPelaajaa, null, new Vector(1000, 0));
31        Keyboard.Listen(Key.Up, ButtonState.Down,
32          LiikutaPelaajaa, null, new Vector(0, 1000));
33        Keyboard.Listen(Key.Down, ButtonState.Down,
34          LiikutaPelaajaa, null, new Vector(0, -1000));
35        Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu");
36
37        LuoLaskuri();
38
39        if (DataStorage.Exists("pisteet.xml"))
40            topLista = DataStorage.Load<ScoreList>(topLista, "pisteet.xml");
41       
42        MessageDisplay.Add("Find The Way");
43
44        // TODO: Kirjoita ohjelmakoodisi tähän
45
46        leppis = new PhysicsObject(60, 60);
47        leppis.Shape = Shape.Circle;
48        leppis.Color = Color.Red;
49        leppis.X = -1750.0;
50        leppis.Y = 800.0;
51        leppis.Image = leppisKuva;
52        AddCollisionHandler(leppis, KasittelePallonTormays);
53        Add(leppis);
54
55        Level.BackgroundColor = Color.LightBlue;
56
57        Gravity = new Vector(0.0, -600.0);
58
59        TileMap ruudut = TileMap.FromFile("kentta.txt");
60
61        ruudut.SetTileMethod('#', LuoTaso);
62        ruudut.SetTileMethod('k', LuoKukka);
63        ruudut.SetTileMethod('p', LuoPerhonen);
64        ruudut.SetTileMethod('K', LuoKaveri);
65        ruudut.SetTileMethod('2', LuoKukka2);
66        ruudut.SetTileMethod('h', LuoHaavi);
67        ruudut.SetTileMethod('s', LuoSydan);
68        ruudut.Execute(90, 90);
69        Camera.ZoomToLevel();
70    }
71
72    void LiikutaPelaajaa(Vector vektori)
73    {
74        leppis.Push(vektori);
75    }
76
77    void LuoTaso(Vector paikka, double leveys, double korkeus)
78    {
79        PhysicsObject taso = PhysicsObject.CreateStaticObject(leveys, korkeus);
80        taso.Position = paikka;
81        taso.Shape = Shape.Rectangle;
82        taso.Color = Color.ForestGreen;
83        Add(taso);
84    }
85
86    void LuoKukka(Vector paikka, double leveys, double korkeus)
87    {
88        PhysicsObject kukka = PhysicsObject.CreateStaticObject(leveys, korkeus);
89        kukka.Position = paikka;
90        kukka.Shape = Shape.Rectangle;
91        kukka.Color = Color.Magenta;
92        kukka.Image = kukkaKuva;
93        kukka.Tag = "kukkanen";
94        Add(kukka);
95    }
96
97    void LuoPerhonen(Vector paikka, double leveys, double korkeus)
98    {
99        PhysicsObject perhonen = PhysicsObject.CreateStaticObject(leveys, korkeus);
100        perhonen.Position = paikka;
101        perhonen.Shape = Shape.Octagon;
102        perhonen.Color = Color.Blue;
103        perhonen.Image = perhonenKuva;
104        perhonen.Tag = "perhonen";
105        Add(perhonen);
106
107    }
108
109    void LuoKaveri(Vector paikka, double leveys, double korkeus)
110    {
111        PhysicsObject kaveri = PhysicsObject.CreateStaticObject(leveys, korkeus);
112        kaveri.Position = paikka;
113        kaveri.Shape = Shape.Circle;
114        kaveri.Color = Color.Red;
115        kaveri.Image = kaveriKuva;
116        kaveri.Tag = "kaveri";
117        Add(kaveri);
118
119    }
120
121    void LuoKukka2(Vector paikka, double leveys, double korkeus)
122    {
123        PhysicsObject kukka2 = PhysicsObject.CreateStaticObject(leveys, korkeus);
124        kukka2.Position = paikka;
125        kukka2.Shape = Shape.Rectangle;
126        kukka2.Color = Color.Blue;
127        kukka2.Image = kukka2Kuva;
128        kukka2.Tag = "kukka2";
129        Add(kukka2);
130    }
131
132    void LuoHaavi(Vector paikka, double leveys, double korkeus)
133    {
134        PhysicsObject haavi = PhysicsObject.CreateStaticObject(leveys, korkeus);
135        haavi.Position = paikka;
136        haavi.Shape = Shape.Triangle;
137        haavi.Color = Color.Brown;
138        haavi.Image = haaviKuva;
139        haavi.Tag = "haavi";
140        Add(haavi);
141    }
142
143    void LuoSydan(Vector paikka, double leveys, double korkeus)
144    {
145        PhysicsObject sydan = PhysicsObject.CreateStaticObject(leveys, korkeus);
146        sydan.Position = paikka;
147        sydan.Shape = Shape.Heart;
148        sydan.Color = Color.Pink;
149        sydan.Image = sydanKuva;
150        sydan.Tag = "sydan";
151        Add(sydan);
152    }
153
154    void KasittelePallonTormays(PhysicsObject leppis, PhysicsObject kohde)
155    {
156
157        if (kohde.Tag.ToString() == "kukkanen")
158        {
159            pisteLaskuri.Value = pisteLaskuri.Value + 2;
160            kohde.Tag = "";
161        }
162
163        if (kohde.Tag.ToString() == "perhonen")
164        {
165            pisteLaskuri.Value = pisteLaskuri.Value - 3;
166        }
167
168        if (kohde.Tag.ToString() == "sydan")
169        {
170            pisteLaskuri.Value = pisteLaskuri.Value + 5;
171        }
172
173        if (kohde.Tag.ToString() == "kukka2")
174        {
175            pisteLaskuri.Value = pisteLaskuri.Value - 2;
176            kohde.Tag = "";
177        }
178
179        if (kohde.Tag.ToString() == "haavi")
180        {
181            Begin();
182        }
183
184        if (kohde.Tag.ToString() == "kaveri")
185        {
186            PeliPaattyy();
187        }
188    }
189
190    void PeliPaattyy()
191    {
192        HighScoreWindow topIkkuna = new HighScoreWindow(
193            "Find The Way", 
194            "Highscore",           
195            "Onneksi olkoon, olet listalla! Syötä nimesi:",                         
196            topLista, pisteLaskuri.Value);
197        topIkkuna.Closed += TallennaPisteet;
198        Add(topIkkuna);
199    }
200
201    void LuoLaskuri()
202    {
203        pisteLaskuri = new IntMeter(0);
204        pisteLaskuri.MinValue = -100;
205        Label pisteNaytto = new Label();
206        pisteNaytto.X = Screen.Left + 100;
207        pisteNaytto.Y = Screen.Top - 100;
208        pisteNaytto.TextColor = Color.Black;
209        pisteNaytto.BindTo(pisteLaskuri);
210        Add(pisteNaytto);
211    }
212
213    void TallennaPisteet(Window sender)
214    {
215        DataStorage.Save<ScoreList>(topLista, "pisteet.xml");
216
217    }
218}
219
Note: See TracBrowser for help on using the repository browser.