- Timestamp:
- 2014-07-03 15:01:43 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2014/27/NoelV/turhakepeli/turhakepeli/turhakepeli/turhakepeli.cs
r5332 r5383 9 9 public class turhakepeli : PhysicsGame 10 10 { 11 12 IntMeter vihollistenMaara = new IntMeter(0, 0, 0); 13 11 14 PhysicsObject pelaaja; 15 PhysicsObject turhake; 12 16 Image hahmo = LoadImage("pelaaja"); 13 17 Image valikonKuva = LoadImage("valikko"); … … 21 25 Image VasenYla = LoadImage("vasenYla"); 22 26 Image hahmoHyokkaa = LoadImage("pelaajaHyokkaa"); 27 Image kuollut = LoadImage("kuollut"); 23 28 24 29 DoubleMeter enkkaLaskuri; 25 DoubleMeter EnergiaLaskuri; 26 30 DoubleMeter energiaLaskuri; 31 const double TIILENLEVEYS = 20; 32 const double TIILENKORKEUS = 20; 27 33 28 34 private Image[] hahmonLiikeAlas = LoadImages("hahmo01", "hahmo02"); … … 30 36 private Image[] hahmonLiikeOikea = LoadImages("hahmo01", "hahmo02"); 31 37 Image taustaKuva = LoadImage("maa"); 32 38 Timer energianKasvattaja; 33 39 34 40 public override void Begin() 35 41 { 36 42 37 Level.Background.Image = taustaKuva; 38 Level.Background.TileToLevel(); 39 40 41 42 //GameObject taustaPilvet = new GameObject(10000, 10000); 43 // taustaPilvet.Image = taustaKuva; 44 //Add(taustaPilvet, -3); 45 //Layers[-3].RelativeTransition = new Vector(0.5, 0.5); 46 47 48 49 SmoothTextures = false; 50 Level.Background.Color = Color.Brown; 51 52 //hahmonLiike = LoadAnimation("hahmo"); 53 54 LuoKentta(); 55 56 LisaaOhjaimet(); 57 58 LuoEnkkaLaskuri(); 59 60 LuoEnergiaLaskuri(); 61 62 63 64 65 66 Camera.Zoom(4); 67 Camera.FollowedObject = pelaaja; 68 69 PhysicsObject turhake = new PhysicsObject(10, 10); 70 turhake.Color = Color.Gray; 71 Add(turhake); 43 AloitaPeli(); 72 44 73 45 … … 148 120 void LuoKentta() 149 121 { 150 Image taustaKuva = LoadImage("kuvanNimi"); 151 Level.Background.TileToLevel(); 122 //ClearAll(); 123 124 // TODO kuollessa kertaa zoomin ja kaikkee 125 126 vihollistenMaara.Value = 0; 127 vihollistenMaara.MaxValue = 0; 128 vihollistenMaara.MinValue = 0; 129 Level.Background.Image = taustaKuva; 130 131 132 pelaaja = new PhysicsObject(TIILENLEVEYS, TIILENKORKEUS); 133 152 134 153 135 //1. Luetaan kuva uuteen ColorTileMappiin, kuvan nimen perässä ei .png-päätettä. 154 ColorTileMap ruudut = ColorTileMap.FromLevelAsset( "kentta");136 ColorTileMap ruudut = ColorTileMap.FromLevelAsset(RandomGen.SelectOne("kentta", "kentta02")); 155 137 156 138 //2. Kerrotaan mitä aliohjelmaa kutsutaan, kun tietyn värinen pikseli tulee vastaan kuvatiedostossa. … … 163 145 ruudut.SetTileMethod(new Color(155, 0, 255), LuoVasenAla); 164 146 ruudut.SetTileMethod(new Color(255, 145, 0), LuoVasenYla); 147 ruudut.SetTileMethod(new Color(127, 0, 55), LuoVihollinen); 148 165 149 166 150 167 151 //3. Execute luo kentän 168 152 // Parametreina leveys ja korkeus 169 ruudut.Execute(20, 20); 170 171 172 173 Timer vihunLuontiAjastin = new Timer(); 174 vihunLuontiAjastin.Interval = 10.0; 175 vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left, Level.Right), Level.Top)); }; 176 vihunLuontiAjastin.Start(); 177 178 } 153 ruudut.Execute(TIILENLEVEYS, TIILENKORKEUS); 154 Level.Background.TileToLevel(); 155 vihollistenMaara.LowerLimit += KenttaLapi; 156 157 energianKasvattaja = new Timer(); 158 energianKasvattaja.Interval = 2.0; 159 energianKasvattaja.Timeout += delegate { energiaLaskuri.Value++; if (energiaLaskuri.Value >= 10) energianKasvattaja.Stop(); }; 160 161 LuoVihuNaytto(); 162 163 //Timer vihunLuontiAjastin = new Timer(); 164 //vihunLuontiAjastin.Interval = 1.0; 165 //vihunLuontiAjastin.Timeout += delegate { LuoVihollinen(new Vector(RandomGen.NextDouble(Level.Left+20, Level.Right-20), RandomGen.NextDouble (Level.Bottom+20, Level.Top-20)));}; 166 //vihunLuontiAjastin.Start(); 167 168 } 169 170 void LuoVihuNaytto() 171 { 172 Label pisteNaytto = new Label(); 173 pisteNaytto.X = Screen.Left + 100; 174 pisteNaytto.Y = Screen.Top - 100; 175 pisteNaytto.TextColor = Color.Black; 176 pisteNaytto.Color = Color.White; 177 178 pisteNaytto.BindTo(vihollistenMaara); 179 Add(pisteNaytto); 180 } 181 179 182 void LuoAlaseina(Vector paikka, double leveys, double korkeus) 180 183 { … … 229 232 Add(oikea); 230 233 231 234 232 235 } 233 236 … … 236 239 void LuoPelaaja(Vector paikka, double leveys, double korkeus) 237 240 { 238 pelaaja = new PhysicsObject(leveys, korkeus);241 239 242 pelaaja.Image = hahmo; 240 243 pelaaja.Position = paikka; … … 269 272 270 273 271 private void LuoVihollinen(Vector vektori)272 { 273 Vihu vihollinen = new Vihu( 20, 20);274 private void LuoVihollinen(Vector paikka, double leveys, double korkeus) 275 { 276 Vihu vihollinen = new Vihu(leveys, korkeus); 274 277 275 278 vihollinen.ElamaLaskuri = new IntMeter(5, 0, 5); 276 279 vihollinen.Position = paikka; 277 280 Add(vihollinen); 278 281 vihollinen.Restitution = 1.5; … … 291 294 292 295 vihollinen.Brain = seuraajanAivot; 293 296 vihollistenMaara.MaxValue++; 297 vihollistenMaara.Value = vihollistenMaara.MaxValue; 298 299 } 300 void KenttaLapi() 301 { 302 //MessageDisplay.Add("Läpäisit kentän"); 303 ClearAll(); 304 AloitaPeli(); 294 305 } 295 306 void Hyokkaa() … … 303 314 304 315 305 Add(hyokkaus); 316 317 318 if (energiaLaskuri.Value > 0) 319 { 320 energiaLaskuri.Value--; 321 Add(hyokkaus); 322 if (energiaLaskuri.Value < 10) 323 { 324 325 if (!energianKasvattaja.Enabled) 326 { 327 energianKasvattaja.Start(); 328 } 329 330 } 331 } 332 306 333 hyokkaus.CanRotate = false; 307 334 AxleJoint liitos = new AxleJoint(pelaaja, hyokkaus); … … 339 366 if (kohde.Tag.Equals("vihu")) 340 367 { 341 TuhoaVihu(kohde); 368 OsuVihuun(kohde); 369 342 370 } 343 371 } 344 private void TuhoaVihu(PhysicsObject kohde)372 private void OsuVihuun(PhysicsObject kohde) 345 373 { 346 374 //Explosion rajahdys = new Explosion(150); … … 351 379 352 380 (kohde as Vihu).ElamaLaskuri.Value--; 353 if ((kohde as Vihu).ElamaLaskuri.Value <= 0) kohde.Destroy(); 381 if ((kohde as Vihu).ElamaLaskuri.Value <= 0) 382 { 383 kohde.Destroy(); 384 vihollistenMaara.Value--; 385 } 354 386 } 355 387 … … 370 402 { 371 403 372 Explosion rajahdys = new Explosion(50); 373 374 rajahdys.Position = pelaaja.Position; 375 Add(rajahdys); 404 405 //IsPaused = true; 406 //pelaaja.Image = kuollut; 407 //MessageDisplay.Add("aodihb"); 408 //Label teksti = new Label("GAME OVER!!!"); 409 //teksti.TextScale = new Vector(3, 3); 410 //Add(teksti); 411 //teksti.Color = Color.Transparent; 412 376 413 IsPaused = true; 377 378 pelaaja.Destroy(); 379 MessageDisplay.Add("Hävisit pelin"); 380 381 Label teksti = new Label("PELI LOPPUI!!!"); 382 teksti.TextScale = new Vector(3, 3); 383 Add(teksti); 384 teksti.Color = Color.Red; 385 414 MultiSelectWindow valikko = new MultiSelectWindow("Game Over", "Restart", "Quit Game"); 415 valikko.AddItemHandler(1, Exit); 416 valikko.AddItemHandler(0, delegate { AloitaPeli(); }); 417 valikko.Color = Color.Black; 418 valikko.Color = Color.Transparent; 419 valikko.SelectionColor = Color.Black; 420 valikko.Image = valikonKuva; 421 Add(valikko); 422 423 386 424 387 425 } 426 void AloitaPeli() 427 { 428 ClearAll(); 429 IsPaused = false; 430 Mouse.IsCursorVisible = false; 431 432 433 Level.Background.Image = taustaKuva; 434 Level.Background.TileToLevel(); 435 Camera.StayInLevel = true; 436 437 438 //GameObject taustaPilvet = new GameObject(10000, 10000); 439 // taustaPilvet.Image = taustaKuva; 440 //Add(taustaPilvet, -3); 441 //Layers[-3].RelativeTransition = new Vector(0.5, 0.5); 442 443 444 445 SmoothTextures = false; 446 Level.Background.Color = Color.Brown; 447 448 //hahmonLiike = LoadAnimation("hahmo"); 449 450 LuoKentta(); 451 452 LisaaOhjaimet(); 453 454 LuoEnkkaLaskuri(); 455 456 LuoEnergiaLaskuri(); 457 458 459 460 461 462 463 Camera.Zoom(4); 464 465 466 turhake = new PhysicsObject(10, 10); 467 turhake.Color = Color.Gray; 468 Add(turhake); 469 Camera.FollowedObject = pelaaja; 470 } 471 472 473 388 474 void OsuuViholliseen(PhysicsObject pelaaja, PhysicsObject vihu) 389 475 { … … 396 482 void LuoEnergiaLaskuri() 397 483 { 398 EnergiaLaskuri = new DoubleMeter(10);399 EnergiaLaskuri.MaxValue = 10;400 EnergiaLaskuri.LowerLimit += ElamaLoppui;484 energiaLaskuri = new DoubleMeter(10); 485 energiaLaskuri.MaxValue = 10; 486 //energiaLaskuri.LowerLimit += ElamaLoppui; 401 487 402 488 ProgressBar energiaPalkki = new ProgressBar(150, 20); 403 489 energiaPalkki.X = Screen.Left + 150; 404 energiaPalkki.Y = Screen.Top - 10; 405 energiaPalkki.BindTo(EnergiaLaskuri); 490 energiaPalkki.Y = Screen.Top - 50; 491 energiaPalkki.BindTo(energiaLaskuri); 492 energiaPalkki.Color = Color.Blue; 493 406 494 Add(energiaPalkki); 495 energiaPalkki.Color = Color.Blue; 407 496 } 408 497 … … 418 507 : base(leveys, korkeus) 419 508 { 420 elamaLaskuri.LowerLimit += delegate { this.Destroy(); };509 //elamaLaskuri.LowerLimit += delegate { this.Destroy(); }; 421 510 } 422 511 }
Note: See TracChangeset
for help on using the changeset viewer.