1 | using System; |
---|
2 | using System.Collections.Generic; |
---|
3 | using Jypeli; |
---|
4 | using Jypeli.Assets; |
---|
5 | using Jypeli.Controls; |
---|
6 | using Jypeli.Effects; |
---|
7 | using Jypeli.Widgets; |
---|
8 | |
---|
9 | public class Peli : PhysicsGame |
---|
10 | { |
---|
11 | Image hahmonKuva = LoadImage("hahmo"); |
---|
12 | Image talonKuva = LoadImage("talo"); |
---|
13 | Image katon1Kuva = LoadImage("katto1"); |
---|
14 | Image ikkunanKuva = LoadImage("ikkuna"); |
---|
15 | Image katonKuva = LoadImage("katto"); |
---|
16 | Image katon2Kuva = LoadImage("katto2"); |
---|
17 | Image ovenKuva = LoadImage("ovi"); |
---|
18 | Image seinanKuva = LoadImage("seinä"); |
---|
19 | Image tangonKuva = LoadImage("lipputanko"); |
---|
20 | Image nupinKuva = LoadImage("nuppi"); |
---|
21 | Image roskanKuva = LoadImage("roska"); |
---|
22 | Image koydenKuva = LoadImage("köysi"); |
---|
23 | Image parvekkeenKuva = LoadImage("parveke"); |
---|
24 | Image puskanKuva = LoadImage("puska"); |
---|
25 | Image puunKuva = LoadImage("puurunko"); |
---|
26 | Image puun1Kuva = LoadImage("puulehdet"); |
---|
27 | Shape hahmonMuoto; |
---|
28 | |
---|
29 | PlatformCharacter hahmo; |
---|
30 | |
---|
31 | DoubleMeter alaspainLaskuri; |
---|
32 | int elämät = 3; |
---|
33 | |
---|
34 | public override void Begin() |
---|
35 | { |
---|
36 | // TODO: Kirjoita ohjelmakoodisi tähän |
---|
37 | hahmonMuoto = Shape.FromImage(hahmonKuva); |
---|
38 | |
---|
39 | LuoKenttä(); |
---|
40 | AloitaPeli(); |
---|
41 | AsetaOhjaimet(); |
---|
42 | |
---|
43 | alaspainLaskuri = new DoubleMeter(2); |
---|
44 | |
---|
45 | Timer ajastin = new Timer(); |
---|
46 | ajastin.Interval = 0.1; |
---|
47 | ajastin.Trigger += aikaloppui; |
---|
48 | ajastin.Start(); |
---|
49 | |
---|
50 | Label aikaNaytto = new Label(); |
---|
51 | aikaNaytto.TextColor = Color.Black; |
---|
52 | aikaNaytto.BindTo(alaspainLaskuri); |
---|
53 | Add(aikaNaytto); |
---|
54 | |
---|
55 | |
---|
56 | } |
---|
57 | void aikaloppui(Timer Sender) |
---|
58 | { |
---|
59 | alaspainLaskuri.Value -= 0.1; |
---|
60 | |
---|
61 | if (alaspainLaskuri.Value <= 0) |
---|
62 | { |
---|
63 | MessageDisplay.Add("Aika loppui..."); |
---|
64 | Sender.Stop(); |
---|
65 | elämät--; |
---|
66 | if (elämät > 0) { Uudestaan(); } |
---|
67 | else |
---|
68 | { |
---|
69 | gameover(); |
---|
70 | } |
---|
71 | |
---|
72 | |
---|
73 | } |
---|
74 | |
---|
75 | } |
---|
76 | void gameover() |
---|
77 | { |
---|
78 | |
---|
79 | } |
---|
80 | void Uudestaan() |
---|
81 | { |
---|
82 | ClearGameObjects(); |
---|
83 | LuoKenttä(); |
---|
84 | ResetElapsedTime(); |
---|
85 | } |
---|
86 | void LuoAloitusruutu() |
---|
87 | { |
---|
88 | } |
---|
89 | void LuoKenttä() |
---|
90 | { |
---|
91 | TileMap kentta = TileMap.FromFile("kentta.txt"); |
---|
92 | kentta['%'] = lisaaTanko; |
---|
93 | kentta['#'] = lisaaSeina; |
---|
94 | kentta['/'] = lisaaTaso; |
---|
95 | kentta['='] = lisaaTaso; |
---|
96 | //kentta['+'] = lisaaTaso; |
---|
97 | kentta['K'] = lisaaKatto; |
---|
98 | kentta['1'] = lisaaKatto1; |
---|
99 | kentta['I'] = lisaaIkkuna; |
---|
100 | kentta['2'] = lisaaKatto2; |
---|
101 | kentta['O'] = lisaaOvi; |
---|
102 | kentta['N'] = lisaaNuppi; |
---|
103 | kentta['&'] = lisaaRoska; |
---|
104 | kentta['/'] = lisaaKoysi; |
---|
105 | kentta['?'] = lisaaParveke; |
---|
106 | kentta['P'] = lisaaPuska; |
---|
107 | kentta['0'] = lisaaPuu; |
---|
108 | kentta['9'] = lisaaPuu1; |
---|
109 | kentta.Insert(40.0, 40.0); |
---|
110 | |
---|
111 | hahmo = new PlatformCharacter(40, 40, hahmonMuoto); |
---|
112 | hahmo.Image = hahmonKuva; |
---|
113 | hahmo.X = -2300.0; |
---|
114 | hahmo.Y = -225.0; |
---|
115 | AddCollisionHandler(hahmo, kasittelehahmontormays); |
---|
116 | |
---|
117 | Add(hahmo); |
---|
118 | |
---|
119 | //PhysicsObject alaReuna = Level.CreateBottomBorder(1.0, true); |
---|
120 | Gravity = new Vector(0.0, -800.0); |
---|
121 | //Level.CreateBorders(); |
---|
122 | Camera.Follow(hahmo); |
---|
123 | Camera.StayInLevel = true; |
---|
124 | //Timer ajastin = new Timer(); |
---|
125 | //ajastin.Interval = 0.01; |
---|
126 | //ajastin.Trigger += liikutaHahmoa; |
---|
127 | //ajastin.Start(); |
---|
128 | } |
---|
129 | void kasittelehahmontormays(PhysicsObject hahmo, PhysicsObject kohde) |
---|
130 | { |
---|
131 | |
---|
132 | } |
---|
133 | PhysicsObject lisaaTaso() |
---|
134 | { |
---|
135 | PhysicsObject taso = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
136 | taso.Color = Color.Green; |
---|
137 | return taso; |
---|
138 | } |
---|
139 | PhysicsObject lisaaKatto1() |
---|
140 | { |
---|
141 | PhysicsObject katto1 = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
142 | katto1.Image = katon1Kuva; |
---|
143 | return katto1; |
---|
144 | } |
---|
145 | PhysicsObject lisaaKatto2() |
---|
146 | { |
---|
147 | PhysicsObject katto2 = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
148 | katto2.Image = katon2Kuva; |
---|
149 | return katto2; |
---|
150 | } |
---|
151 | PhysicsObject lisaaIkkuna() |
---|
152 | { |
---|
153 | PhysicsObject ikkuna = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
154 | ikkuna.Image = ikkunanKuva; |
---|
155 | return ikkuna; |
---|
156 | } |
---|
157 | PhysicsObject lisaaSeina() |
---|
158 | { |
---|
159 | PhysicsObject seina = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
160 | seina.Image = seinanKuva; |
---|
161 | return seina; |
---|
162 | } |
---|
163 | PhysicsObject lisaaTalo() |
---|
164 | { |
---|
165 | PhysicsObject talo = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
166 | talo.Image = talonKuva; |
---|
167 | return talo; |
---|
168 | } |
---|
169 | PhysicsObject lisaaTanko() |
---|
170 | { |
---|
171 | PhysicsObject tanko = PhysicsObject.CreateStaticObject(20.0, 40.0); |
---|
172 | tanko.Image = tangonKuva; |
---|
173 | return tanko; |
---|
174 | } |
---|
175 | PhysicsObject lisaaKatto() |
---|
176 | { |
---|
177 | PhysicsObject katto = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
178 | katto.Image = katonKuva; |
---|
179 | return katto; |
---|
180 | } |
---|
181 | PhysicsObject lisaaOvi() |
---|
182 | { |
---|
183 | PhysicsObject ovi = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
184 | ovi.Image = ovenKuva; |
---|
185 | return ovi; |
---|
186 | } |
---|
187 | PhysicsObject lisaaNuppi() |
---|
188 | { |
---|
189 | PhysicsObject nuppi = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
190 | nuppi.Image = nupinKuva; |
---|
191 | return nuppi; |
---|
192 | } |
---|
193 | PhysicsObject lisaaRoska() |
---|
194 | { |
---|
195 | PhysicsObject roska = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
196 | roska.Image = roskanKuva; |
---|
197 | return roska; |
---|
198 | } |
---|
199 | PhysicsObject lisaaKoysi() |
---|
200 | { |
---|
201 | PhysicsObject koysi = PhysicsObject.CreateStaticObject(10.0, 40.0); |
---|
202 | koysi.Image = koydenKuva; |
---|
203 | return koysi; |
---|
204 | } |
---|
205 | PhysicsObject lisaaParveke() |
---|
206 | { |
---|
207 | PhysicsObject parveke = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
208 | parveke.Image = parvekkeenKuva; |
---|
209 | return parveke; |
---|
210 | } |
---|
211 | void AloitaPeli() |
---|
212 | { |
---|
213 | Vector impulssi = new Vector(300.0, 0.0); |
---|
214 | hahmo.Hit(impulssi); |
---|
215 | } |
---|
216 | PhysicsObject lisaaPuska() |
---|
217 | { |
---|
218 | PhysicsObject puska = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
219 | puska.Image = puskanKuva; |
---|
220 | return puska; |
---|
221 | } |
---|
222 | PhysicsObject lisaaPuu() |
---|
223 | { |
---|
224 | PhysicsObject puu = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
225 | puu.Image = puunKuva; |
---|
226 | return puu; |
---|
227 | } |
---|
228 | PhysicsObject lisaaPuu1() |
---|
229 | { |
---|
230 | PhysicsObject puu1 = PhysicsObject.CreateStaticObject(40.0, 40.0); |
---|
231 | puu1.Image = puun1Kuva; |
---|
232 | return puu1; |
---|
233 | } |
---|
234 | void AsetaOhjaimet() |
---|
235 | { |
---|
236 | Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus, "Paina oikealle nuolta niin hahmo liikkuu oikealle", new Vector(10000.0, 0.0)); |
---|
237 | Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus, "Paina nuolta vasemmalle niin hahmo liikkuu vasemmalle", new Vector(-10000.0, 0.0)); |
---|
238 | Keyboard.Listen(Key.Space, ButtonState.Pressed, LiikutaPelaajaa, "Paina SPACE niin hahmo hyppää"); |
---|
239 | Keyboard.Listen(Key.F1, ButtonState.Pressed, ShowControlHelp, "Näytä ohjeet"); |
---|
240 | Keyboard.Listen(Key.Escape, ButtonState.Pressed, Exit, "Poistu"); |
---|
241 | |
---|
242 | } |
---|
243 | void AsetaNopeus(Vector vektori) |
---|
244 | { |
---|
245 | hahmo.Push(vektori); |
---|
246 | } |
---|
247 | |
---|
248 | void LiikutaPelaajaa() |
---|
249 | { |
---|
250 | hahmo.Jump(1000.0); |
---|
251 | } |
---|
252 | |
---|
253 | |
---|
254 | //void liikutaHahmoa(Timer Sender) |
---|
255 | //{ |
---|
256 | //hahmo.Velocity = new Vector(100.0, hahmo.Velocity.Y); |
---|
257 | //} |
---|
258 | |
---|
259 | } |
---|