Changeset 433
- Timestamp:
- 2009-08-07 14:18:43 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
jaana_j/TaivaanMuna/Peli.cs
r318 r433 17 17 class Tasohyppely : PhysicsGame 18 18 { 19 20 19 21 #region Muuttujat 20 22 … … 24 26 Meter<int> pisteLaskuri; 25 27 ValueDisplay pisteNaytto; 28 Meter<int> siemenLaskuri; 29 ValueDisplay siemenNaytto; 26 30 27 31 PlatformCharacter pelaaja1; 28 32 PhysicsObject maali; 33 HighScoreList lista; 29 34 30 35 int kenttaNro; // monesko kenttä on menossa 31 36 32 37 #endregion 38 33 39 34 40 … … 38 44 // Asetetaan kentän numero nollaksi, jota kasvatetaan kentän latauksessa (aina siis vähintään 1) 39 45 kenttaNro = 0; 40 41 46 DrawPerimeter = false; //ei haluta piirtää kentän reunoja 42 43 47 // Luodaan pistelaskuri 44 48 pisteLaskuri = new Meter<int>(0, 0, 1000000); 49 siemenLaskuri = new Meter<int>(0, 0, 100000); 45 50 46 51 // luodaan pistelaskunäyttö 47 52 pisteNaytto = new ValueDisplay(this); 48 53 pisteNaytto.Text = "Pisteitä: "; 49 pisteNaytto.X = Screen.RightSafe - 250;54 pisteNaytto.X = Screen.RightSafe - 150; 50 55 pisteNaytto.Y = Screen.TopSafe - 50; 51 56 pisteNaytto.BindTo(pisteLaskuri); 52 57 Add(pisteNaytto); // lisätään peliin 53 58 59 // luodaan siemennäyttö 60 siemenNaytto = new ValueDisplay(this); 61 siemenNaytto.Text = "Siemeniä: "; 62 siemenNaytto.X = Screen.RightSafe - 150; 63 siemenNaytto.Y = Screen.TopSafe - 950; 64 siemenNaytto.BindTo(siemenLaskuri); 65 Add(siemenNaytto); // lisätään peliin 66 67 //luodaan top-10 lista 68 lista = HighScoreList.LoadOrCreate(this, "topten.dat", 10); 69 70 71 //Taustamusiikki 72 73 { 74 Song musiikki = Content.Load<Song>("taustamusiikki"); 75 MediaPlayer.Play(musiikki); 76 } 77 78 79 54 80 // Asetetaan painovoima 55 81 Gravity = new Vector2D(0, -1000); … … 72 98 73 99 // Laitetaan peliohje näyttöön 74 MessageDisplay.Add("Etsi koti linna!"); 75 MessageDisplay.Add("Mutta varo tähtiä..."); 100 MessageDisplay.Add("Pika ohjeet:"); 101 MessageDisplay.Add("1. Etsi koti linna! Pääset maaliin, kun olet saanut 10-pistettä!"); 102 MessageDisplay.Add("2. Mutta varo tähtiä! Niillä on ikävät aikomukset...!"); 103 MessageDisplay.Add("3. Keräämällä siemenlootia saat ammuksia tähtiä vastaan! Muna ampuu välilyönti-näppäimellä!"); 104 MessageDisplay.Add("4. Kun pääset tason 10 läpi, voit päästä ehkäpä top-10 listoille! Onnea!"); 76 105 } 77 106 #endregion 107 78 108 79 109 … … 87 117 lisaaNappaimet(); 88 118 Camera.Follow(pelaaja1); 119 89 120 return seuraava; 90 121 } … … 92 123 Level luoKentta() 93 124 { 94 Level kentta = new Level(this, 2000, 1000);125 Level kentta = new Level(this, 1500, 1400); // Tässä määritetään kentän leveys ja korkeus 95 126 kentta.CreateBorder(); 96 127 kentta.Borders.Visible = false; … … 102 133 kentta.Objects.Add(alusta); 103 134 104 /*lisaaPieniTaso(kentta, -200, -350);105 lisaaPieniTaso(kentta, 0, -200);106 lisaaPieniTaso(kentta, 400, -150);107 lisaaPieniTaso(kentta, 500, 0);108 lisaaPieniTaso(kentta, 400, 100);*/109 110 135 for (int i = 0; i < 55; i++) 111 136 { … … 115 140 } 116 141 142 int siementenMaara = kenttaNro; 143 lisaaSiemenet(kentta, siementenMaara); 117 144 lisaaMaali(kentta); 118 145 lisaaPelaajat(kentta); 119 // lisaaTahdet(kentta); 120 121 int vihollistenMaara = kenttaNro; 146 147 int vihollistenMaara = kenttaNro * 2; 122 148 lisaaViholliset(kentta, vihollistenMaara); 123 149 124 150 return kentta; 151 } 152 153 void lisaaSiemenet(Level kentta, int siementenMaara) 154 { 155 for (int i = 0; i < siementenMaara; i++) 156 { 157 PhysicsObject Siemen = new PhysicsObject(5, Shapes.CreateRectangle(25, 25)); 158 Siemen.X = RandomGen.NextDouble(kentta.Left, kentta.Right); 159 Siemen.Y = RandomGen.NextDouble(200, kentta.Top); 160 kentta.Objects.Add(Siemen); 161 AddCollisionHandler(Siemen, osuttiinSiemenLootaan); 162 Siemen.Texture = Content.Load<Texture2D>("Siemenet"); 163 164 } 165 125 166 } 126 167 … … 131 172 taso.X = x; 132 173 taso.Y = y; 133 kentta.Objects.Add(taso); 134 174 kentta.Objects.Add(taso); 135 175 } 136 176 … … 146 186 147 187 kentta.Objects.Add(pelaaja1); 148 } 149 150 //Keräilee Matosia... :)151 void lisaatahdet(Level kentta)152 {153 for (int i = 0; i < 20; i++)154 {155 PhysicsObject tahti = new PhysicsObject(0.005, Shapes.CreateCircle(8));156 tahti.X = RandomGen.NextDouble(-475.0, 475.0);157 tahti.Y = 400.0;158 tahti.Restitution = 1.0;159 tahti.Texture = Content.Load<Texture2D>("Mato");160 AddCollisionHandler(tahti, keraa);161 kentta.Objects.Add(tahti);162 163 164 } 165 188 189 Texture2D[] munaTex = { Content.Load<Texture2D>( "Muna" ), 190 Content.Load<Texture2D>( "Muna" ), 191 Content.Load<Texture2D>( "Muna1" ), 192 Content.Load<Texture2D>( "Muna1" ), 193 Content.Load<Texture2D>( "Muna2" ), 194 Content.Load<Texture2D>( "Muna2" ), 195 196 }; 197 pelaaja1.RightIdleTexture = new AnimatedTexture(Content.Load<Texture2D>("Muna")); 198 //pelaaja1.AnimatedTexture = new AnimatedTexture(munaTex); 199 pelaaja1.RightWalkingTexture = new AnimatedTexture(munaTex); 200 pelaaja1.LeftWalkingTexture = new AnimatedTexture(munaTex); 201 202 203 } 204 205 166 206 void lisaaMaali(Level kentta) 167 207 { … … 183 223 vihollinen.X = maali.X; 184 224 vihollinen.Y = maali.Y; 225 vihollinen.Tag = "pahis"; 185 226 vihollinen.IgnoresGravity = true; 186 227 vihollinen.Texture = Content.Load<Texture2D>("tahti"); … … 192 233 193 234 235 194 236 #region Nappaimet 195 237 // Lisää peliin kaikki näppäimet … … 204 246 Controls.Listen(Keys.Right, ButtonPosition.Down, liikuta, "Liikkuu oikealle", pelaaja1, new Vector2D(liikeVoima, 0)); 205 247 Controls.Listen(Keys.Up, ButtonPosition.Pressed, hyppaa, "Hyppää", pelaaja1, hyppyVoima); 248 Controls.Listen(Keys.Space, ButtonPosition.Pressed, heitaSiemen, "Heitä", pelaaja1); 206 249 207 250 lisaaGamePadNappaimet(PlayerIndex.One, pelaaja1); … … 217 260 Controls.Listen(pelaajaNro, Buttons.A, ButtonPosition.Pressed, hyppaa, "Pelaaja hyppää", pelaaja, hyppyVoima); 218 261 } 262 219 263 // Näppäimiin liitetyt toiminnot alkavat tästä --> 220 264 bool liikuta(ControlEvent e) … … 238 282 } 239 283 240 bool uusiPeli(ControlEvent e) 284 bool heitaSiemen(ControlEvent e) 285 { 286 if (siemenLaskuri.Value > 0) 287 { 288 //Bullet siemen = new Bullet(); 289 //siemen.Texture = Content.Load<Texture2D>("Siemen"); 290 PhysicsObject siemen = new PhysicsObject(5, Shapes.CreateCircle(5)); 291 Vector2D v = new Vector2D(-3000, 200); 292 siemen.Texture = Content.Load<Texture2D>("Siemen1"); 293 Level.Objects.Add(siemen); 294 AddCollisionHandler(siemen, siemenOsui); 295 siemen.X = pelaaja1.X; 296 siemen.Y = pelaaja1.Y; 297 siemen.Hit(v); 298 siemenLaskuri.Value--; 299 300 } 301 return false; 302 } 303 304 bool uusiPeli(ControlEvent e) 241 305 { 242 306 aloitaUusiPeli(); … … 244 308 } 245 309 #endregion 310 311 246 312 247 313 #region Tapahtumat … … 251 317 if (collision.Other.Tag == "maali" && pisteLaskuri.Value>19) 252 318 { 319 if (kenttaNro == 10) 320 { 321 peliLoppui(); 322 } 323 253 324 maali.Texture = Content.Load<Texture2D>("maali"); 254 325 this.PlaySound("maali"); … … 256 327 Level = seuraavaKentta(); 257 328 MessageDisplay.Add("Pääsit läpi kentän " + kenttaNro + ". Pisteitä: " + edellisenKentanPisteet); 258 } 329 330 } 331 } 332 333 void peliLoppui() 334 { 335 lista.Show( pisteLaskuri.Value ); 259 336 } 260 337 … … 270 347 //Miten tehtäsiin se, että pilvi ilmestyisi takaisin muutaman sekunnin päästä...? 271 348 pisteLaskuri.Value += 1; 272 273 274 349 } 275 350 } … … 281 356 PhysicsObject tahti = collision.Obj; 282 357 tahti.Destroy(); 283 284 358 this.PlaySound("kerays", -0.5, 0.5); 285 286 } 359 } 360 } 361 362 // Kerää Siemenen 363 void osuttiinSiemenLootaan(Collision collision) 364 { 365 if (collision.Other.Equals(pelaaja1)) 366 { 367 PhysicsObject Siemen = collision.Obj; 368 Siemen.Destroy(); 369 this.PlaySound("kerays", -0.5, 0.5); 370 siemenLaskuri.Value += 10; // Lisätään siemenlaskuriin 10 panosta lisää 371 } 372 } 373 374 void siemenOsui(Collision collision) 375 { 376 if (collision.Other is PlatformCharacter) 377 { 378 PlatformCharacter pc = collision.Other as PlatformCharacter; 379 if (pc.Tag == "pahis") 380 { 381 pc.Destroy(); 382 } 383 } 384 385 287 386 } 288 387 … … 303 402 collision.Other.Hit(new Vector2D(luku1, luku2)); 304 403 } 305 } 404 405 406 } 407 408 409 //Tässä pitäisi olla se, missä tehdään taustamuiikkia 410 411 412 306 413 #endregion 307 414 }
Note: See TracChangeset
for help on using the changeset viewer.