source: 2010/27/eesaarjo/The Dungeon/Peli.cs @ 1241

Revision 1241, 3.7 KB checked in by paaaanro, 13 years ago (diff)

viimeistelin pelin

Line 
1using System;
2using Jypeli;
3using Jypeli.Widgets;
4using Jypeli.Assets;
5
6public class Peli : PhysicsGame
7{
8    HighScoreList topLista;
9    IntMeter pisteLaskuri;
10    const int ruudunLeveys = 35;
11    const int ruudunKorkeus = 35;
12    PlatformCharacter pelaaja;
13   
14
15    protected override void Begin()
16    {
17        topLista = HighScoreList.LoadOrCreate("topten.dat", 10);
18        topLista.ScreenList.ItemColor = Color.Red;
19        topLista.ScreenList.BackGroundColor = Color.Black;
20
21        AloitaAlusta();
22    }
23
24   
25
26     void LuoKentta()
27    {
28        TileMap ruudut = TileMap.FromFile("dungeon.txt");
29       
30        Level.BackgroundColor = Color.DarkGray;
31        ruudut['='] = LuoPalikka;
32        ruudut['0'] = LuoTahti;
33        ruudut['v'] = LuoVihollinen;
34        ruudut['1'] = LuoPelaaja;
35       
36        ruudut.Insert(ruudunLeveys, ruudunKorkeus);
37
38      }
39
40     void KasittelePelaajanTormays(PhysicsObject pelaaja, PhysicsObject kohde)
41     {
42         if (kohde.Tag.ToString() == "tahti")
43         {
44             kohde.Destroy();
45             pisteLaskuri.Value++;
46
47         }
48         if (kohde.Tag.ToString() == "vihollinen")
49         {
50             pelaaja.Destroy();
51             topLista.Show(pisteLaskuri.Value);
52             Keyboard.Listen(Key.Space, ButtonState.Pressed, AloitaAlusta, null);
53             
54         }
55     }
56
57     void AloitaAlusta()
58     {
59         ClearAll();
60
61         LuoKentta();
62         LuoLaskuri();
63         AddCollisionHandler(pelaaja, KasittelePelaajanTormays);
64         Gravity = new Vector(0.0, -650.0);
65     }
66
67
68     
69   
70
71
72     PhysicsObject LuoVihollinen()
73     {
74         PhysicsObject vihollinen = PhysicsObject.CreateStaticObject (35.0, 35.0);
75         vihollinen.Shape = Shapes.Triangle;
76         vihollinen.Color = Color.DarkGreen;
77         vihollinen.Tag = "vihollinen";
78         Add(vihollinen);
79         return vihollinen; 
80 
81     }
82
83     
84
85    PhysicsObject LuoPalikka()
86    {
87        PhysicsObject palikka = PhysicsObject.CreateStaticObject(50.0, 50.0);
88        palikka.Shape = Shapes.Rectangle;
89        palikka.Color = Color.Black;
90        return palikka;
91    }
92
93    PhysicsObject LuoTahti()
94    {
95        PhysicsObject tahti = PhysicsObject.CreateStaticObject(25.0, 25.0);
96        tahti.Color = Color.Yellow;
97        tahti.Tag = "tahti";
98        return tahti;
99    }
100
101    PhysicsObject LuoPelaaja()
102    {
103        pelaaja = new PlatformCharacter(20, 20);
104        pelaaja.Color = Color.DarkTurquoise;
105        pelaaja.Shape = Shapes.Circle;
106        Camera.Follow(pelaaja);
107       
108
109        Keyboard.Listen(Key.Left, ButtonState.Down, LiikutaPelaajaa, null, -250.0);
110        Keyboard.Listen(Key.Right, ButtonState.Down, LiikutaPelaajaa,null, 250.0);
111        Keyboard.Listen(Key.Up, ButtonState.Down, Hyppaa, null,705.0);
112       
113        Add(pelaaja);
114        return pelaaja;
115    }
116    void Hyppaa(double hyppyvoima)
117    {
118        pelaaja.Jump(hyppyvoima);
119    }
120
121    void LiikutaPelaajaa(double nopeus)
122    {
123        pelaaja.Walk(nopeus);
124        //pelaaja.Push(vektori);
125    }
126
127    void LuoLaskuri()
128    {
129        pisteLaskuri = new IntMeter(0);
130
131        Label pisteNaytto = new Label();
132        pisteNaytto.X = Screen.Left + 100;
133        pisteNaytto.Y = Screen.Top - 100;
134        pisteNaytto.TextColor = Color.Red;
135
136        pisteNaytto.BindTo(pisteLaskuri);
137        Add(pisteNaytto);
138
139        Label pisteTeksti = new Label("Pisteitä: ");
140        pisteTeksti.X = Screen.Left + 50;
141        pisteTeksti.Y = Screen.Top - 100;
142        pisteTeksti.TextColor = Color.LightGreen;
143        Add(pisteTeksti);
144
145    }
146
147
148   
149
150   
151
152}
153
154
155   
156
157
158   
159   
160       
161
162   
163 
164
Note: See TracBrowser for help on using the repository browser.