- Timestamp:
- 2012-06-07 19:38:23 (11 years ago)
- Location:
- 2012/23/LeoL
- Files:
-
- 3 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2012/23/LeoL/Tasohyppelypeli1.cs
r2823 r2852 10 10 { 11 11 string CurrentLevelFile = String.Empty; 12 12 SoundEffect JousiAani = LoadSoundEffect("Ampuu"); 13 13 DoubleMeter elamaMittari; 14 DoubleMeter elamaMittari2; 15 DoubleMeter elamaMittari3; 16 DoubleMeter P2elamaMittari; 17 DoubleMeter P3elamaMittari; 14 18 Image Ampujankuva = LoadImage("Ampuja"); 15 19 Image DemoninKuva = LoadImage("Dem1.anm"); 16 20 Image olionKuva = LoadImage("cafgar.anm"); 17 21 Image magenKuva = LoadImage("Mage"); 22 Image maalinKuva = LoadImage("Maali"); 23 Image hunterKuva = LoadImage("HUntelaar"); 24 Image kavlorKuva = LoadImage("Kavlor"); 18 25 Image[] pelaajanAnim = LoadImages("pelaaja", "Pelaaja2", "Pelaaja3"); 19 26 Image[] pelaajanAnimPeilattu; 20 27 Image p2Kuva = LoadImage("P2"); 28 21 29 double nopeusYlos = 1250; 22 30 Vector nopeusOikea = new Vector(250, 0); … … 25 33 26 34 PlatformCharacter pelaaja; 35 PlatformCharacter pelaaja2; 36 PlatformCharacter pelaaja3; 27 37 28 38 public override void Begin() … … 30 40 ClearAll(); 31 41 MultiSelectWindow valikko = new MultiSelectWindow("Welcome to game", 32 " tutorial", "Start level 1", "Start level 2", "End");42 "P1", "P2", "Exit Game"); 33 43 valikko.ItemSelected += PainettiinValikonNappia; 34 44 Add(valikko); 35 36 37 38 39 } 40 void 41 42 lataaKenttä() 43 { 44 } 45 } 46 void PainettiinValikonNappia(int valinta) 47 { 48 switch (valinta) 49 { 50 case 0: 51 P1MSW(); 52 break; 53 54 case 1: 55 P2MSW(); 56 break; 57 58 case 2: 59 Exit(); 60 break; 61 } 62 } 63 45 64 46 65 void LuoKenttä(string levelFile) … … 55 74 ruudut.SetTileMethod('-', LuoAmpuja); 56 75 ruudut.SetTileMethod('=', LuoMaali); 57 ruudut.SetTileMethod(';', LuoMage); 76 ruudut.SetTileMethod('M', LuoMage); 77 ruudut.SetTileMethod('H', LuoHunter); 78 ruudut.SetTileMethod('K', LuoKavlor); 79 ruudut.SetTileMethod('E', EPotion); 58 80 ruudut.Execute(20, 20); 59 81 Level.Background.Color = Color.ForestGreen; 60 82 Camera.Follow(pelaaja); 83 Gravity = new Vector(0, -5000); 84 85 CurrentLevelFile = levelFile; 86 } 87 void LuoKenttä2(string levelFile) 88 { 89 TileMap ruudut = TileMap.FromLevelAsset(levelFile); 90 ruudut.SetTileMethod('_', LuoPalikka); 91 ruudut.SetTileMethod('.', LuoSeina); 92 ruudut.SetTileMethod('"', LuoPiikki); 93 ruudut.SetTileMethod('3', LuoPelaaja3); 94 ruudut.SetTileMethod('+', LuoCafgar); 95 ruudut.SetTileMethod('#', LuoDemoni); 96 ruudut.SetTileMethod('-', LuoAmpuja); 97 ruudut.SetTileMethod('=', LuoMaali); 98 ruudut.SetTileMethod('M', LuoMage); 99 ruudut.SetTileMethod('H', LuoHunter); 100 ruudut.SetTileMethod('K', LuoKavlor); 101 ruudut.SetTileMethod('E', EPotion); 102 ruudut.SetTileMethod('2', LuoPelaaja2); 103 ruudut.Execute(20, 20); 104 Level.Background.Color = Color.ForestGreen; 105 Camera.Follow(pelaaja3); 61 106 Gravity = new Vector(0, -5000); 62 107 … … 94 139 void AsetaOhjaimet() 95 140 { 96 Keyboard.Listen(Key.Escape, ButtonState.Down, ConfirmExit, "Poistu pelistä");141 Keyboard.Listen(Key.Escape, ButtonState.Down, Begin, "Poistu pelistä"); 97 142 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus, "Pelaaja liikkuu vasemmalle", pelaaja, nopeusVasen); 98 143 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus, null, pelaaja, Vector.Zero); … … 102 147 Keyboard.Listen(Key.E, ButtonState.Pressed, PelaajaLyo, null); 103 148 Keyboard.Listen(Key.Q, ButtonState.Pressed, PelaajaLyo2, null); 149 150 151 152 } 153 void AsetaOhjaimet2() 154 { 155 Keyboard.Listen(Key.Left, ButtonState.Down, AsetaNopeus2, "Pelaaja2 liikkuu vasemmalle", pelaaja2, nopeusVasen); 156 Keyboard.Listen(Key.Left, ButtonState.Released, AsetaNopeus2, null, pelaaja2, Vector.Zero); 157 Keyboard.Listen(Key.Up, ButtonState.Pressed, Hyppy2, "Pelaaja 1: Pelaaaja hyppää ylös", pelaaja2, nopeusYlos); 158 Keyboard.Listen(Key.Right, ButtonState.Down, AsetaNopeus2, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja2, nopeusOikea); 159 Keyboard.Listen(Key.Right, ButtonState.Released, AsetaNopeus2, null, pelaaja2, Vector.Zero); 160 161 Keyboard.Listen(Key.Escape, ButtonState.Down, Begin, "Poistu pelistä"); 162 Keyboard.Listen(Key.P, ButtonState.Down, Begin, "End Game"); 163 Keyboard.Listen(Key.A, ButtonState.Down, AsetaNopeus3, "Pelaaja liikkuu vasemmalle", pelaaja3, nopeusVasen); 164 Keyboard.Listen(Key.A, ButtonState.Released, AsetaNopeus3, null, pelaaja3, Vector.Zero); 165 Keyboard.Listen(Key.W, ButtonState.Pressed, Hyppy3, "Pelaaja 1: Pelaaaja hyppää ylös", pelaaja3, nopeusYlos); 166 Keyboard.Listen(Key.D, ButtonState.Down, AsetaNopeus3, "Pelaaja 1: Pelaaja Liikkuu Oikealle", pelaaja3, nopeusOikea); 167 Keyboard.Listen(Key.D, ButtonState.Released, AsetaNopeus3, null, pelaaja3, Vector.Zero); 168 Keyboard.Listen(Key.E, ButtonState.Pressed, PelaajaLyo4, null); 169 Keyboard.Listen(Key.Q, ButtonState.Pressed, PelaajaLyo3, null); 104 170 } 105 171 … … 108 174 pelaaja = new PlatformCharacter(20, 40); 109 175 pelaaja.Position = paikka; 110 111 176 pelaaja.Color = Color.Aquamarine; 112 177 pelaaja.Image = pelaajanKuva; 113 178 pelaaja.CanRotate = false; 114 179 AddCollisionHandler(pelaaja, "piikki", PelaajaKuolee); 115 AddCollisionHandler(pelaaja, " vihu", PelaajaMenettaa);180 AddCollisionHandler(pelaaja, "Demoni", PelaajaMenettaa); 116 181 AddCollisionHandler(pelaaja, "Ampuja", PelaajaMenettaa2); 117 182 AddCollisionHandler(pelaaja, "cafgar", PelaajaMenettaa2); 118 183 AddCollisionHandler(pelaaja, "maali", SaavutitMaalin); 184 AddCollisionHandler(pelaaja, "peruna", LisaaElamaa); 119 185 PelaajanElamat(); 120 186 pelaaja.Mass = 5000; 121 187 pelaaja.Weapon = new PlasmaCannon(20, 5); 122 188 pelaaja.Weapon.IsVisible = false; 189 Add(pelaaja); 190 } 191 void LuoPelaaja3(Vector paikka, double leveys, double korkeus) 192 { 193 pelaaja3 = new PlatformCharacter(20, 40); 194 pelaaja3.Position = paikka; 195 pelaaja3.Color = Color.Aquamarine; 196 pelaaja3.Image = pelaajanKuva; 197 pelaaja3.CanRotate = false; 198 AddCollisionHandler(pelaaja, "piikki", Pelaaja3Kuolee); 199 AddCollisionHandler(pelaaja, "Demoni", Pelaaja3Menettaa); 200 AddCollisionHandler(pelaaja, "Ampuja", Pelaaja3Menettaa2); 201 AddCollisionHandler(pelaaja, "cafgar", Pelaaja3Menettaa2); 202 AddCollisionHandler(pelaaja, "maali", SaavutitMaalin3); 203 AddCollisionHandler(pelaaja, "peruna", LisaaElamaa3); 204 PelaajanElamat3(); 205 pelaaja3.Mass = 5000; 206 pelaaja3.Weapon = new PlasmaCannon(20, 5); 207 pelaaja3.Weapon.IsVisible = false; 208 Add(pelaaja3); 209 } 210 void LuoPelaaja2(Vector paikka, double leveys, double korkeus) 211 { 212 pelaaja2 = new PlatformCharacter(20, 40); 213 pelaaja2.Position = paikka; 214 pelaaja2.Color = Color.Aquamarine; 215 pelaaja2.Image = p2Kuva; 216 pelaaja2.CanRotate = false; 217 AddCollisionHandler(pelaaja2, "piikki", Pelaaja2Kuolee); 218 AddCollisionHandler(pelaaja2, "Demoni", Pelaaja2Menettaa); 219 AddCollisionHandler(pelaaja2, "Ampuja", Pelaaja2Menettaa2); 220 AddCollisionHandler(pelaaja2, "cafgar", Pelaaja2Menettaa2); 221 AddCollisionHandler(pelaaja2, "maali", SaavutitMaalin2); 222 AddCollisionHandler(pelaaja2, "peruna", LisaaElamaa2); 223 PelaajanElamat2(); 224 pelaaja2.Mass = 5000; 123 225 124 Add(pelaaja );226 Add(pelaaja2); 125 227 } 126 228 … … 128 230 { 129 231 Pelaaja.Velocity = nopeus; 232 } 233 void AsetaNopeus2(PhysicsObject Pelaaja2, Vector nopeus) 234 { 235 Pelaaja2.Velocity = nopeus; 236 } 237 void AsetaNopeus3(PhysicsObject Pelaaja3, Vector nopeus) 238 { 239 Pelaaja3.Velocity = nopeus; 130 240 } 131 241 … … 136 246 pelaaja.Destroy(); 137 247 Replay(); 138 139 } 248 } 249 void Pelaaja2Kuolee(PhysicsObject pelaaja, PhysicsObject kohde) 250 { 251 pelaaja.Destroy(); 252 Replay2(); 253 } 254 void Pelaaja3Kuolee(PhysicsObject pelaaja, PhysicsObject kohde) 255 { 256 pelaaja.Destroy(); 257 Replay2(); 258 } 259 140 260 void LuoCafgar(Vector paikka, double leveys, double korkeus) 141 261 { 142 PhysicsObject Cafgar = PhysicsObject.CreateStaticObject(20, 40);262 PhysicsObject Cafgar = new PhysicsObject(20, 40); 143 263 Cafgar.Position = paikka; 144 264 Cafgar.Image = olionKuva; … … 146 266 Cafgar.Tag = "cafgar"; 147 267 Cafgar.Brain = Aivot(); 268 269 Cafgar.Brain.Active = true; 270 Cafgar.CanRotate = false; 271 CafgarinElamat(Cafgar); 272 AddCollisionHandler(Cafgar, "ase", CafgarMenettaa); 148 273 Add(Cafgar); 149 274 } 275 150 276 void LuoDemoni(Vector paikka, double leveys, double korkeus) 151 277 { … … 154 280 Demoni.Image = DemoninKuva; 155 281 Demoni.Color = Color.Black; 156 Demoni.Tag = " vihu";282 Demoni.Tag = "Demoni"; 157 283 Demoni.Brain = Aivot(); 158 AddCollisionHandler(Demoni, "piikki", Demoni Kuolee);284 AddCollisionHandler(Demoni, "piikki", DemoniTuhoutuu); 159 285 AddCollisionHandler(Demoni, "Ampuja", DemoniKuolee); 160 286 AddCollisionHandler(Demoni, "ammus", DemoniKuolee); … … 162 288 Add(Demoni); 163 289 } 290 void DemoniTuhoutuu(PhysicsObject Demoni, PhysicsObject kohde) 291 { 292 Demoni.Destroy(); 293 } 164 294 void Hyppy(PlatformCharacter pelaaja, double hypynVoima) 165 295 { 166 296 pelaaja.Jump(hypynVoima); 297 } 298 void Hyppy2(PlatformCharacter pelaaja2, double hypynVoima) 299 { 300 pelaaja2.Jump(hypynVoima); 301 } 302 void Hyppy3(PlatformCharacter pelaaja3, double hypynVoima) 303 { 304 pelaaja3.Jump(hypynVoima); 167 305 } 168 306 Brain Aivot() … … 173 311 seuraajanAivot.FollowAlways = true; 174 312 seuraajanAivot.TargetCloseDistance = 20; 175 176 177 313 seuraajanAivot.StopWhenTargetClose = false; 178 314 seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella; 179 315 return seuraajanAivot; … … 184 320 { 185 321 } 186 void DemoniKuolee(PhysicsObject Demoni, PhysicsObject kohde) 187 { 188 Demoni.Destroy(); 189 } 322 323 void DemoniKuolee(PhysicsObject tormaaja, PhysicsObject kohde) 324 { 325 kohde.Destroy(); 326 } 327 190 328 Brain AivotAmpuja() 191 329 { … … 195 333 seuraajanAivot.FollowAlways = true; 196 334 seuraajanAivot.TargetCloseDistance = 200; 197 198 199 200 335 seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella2; 201 336 return seuraajanAivot; … … 213 348 } 214 349 } 350 215 351 void LuoAmpuja(Vector paikka, double leveys, double korkeus) 216 352 { … … 229 365 Add(Ampuja); 230 366 } 367 231 368 void PelaajaMenettaa() 232 369 { 233 370 } 371 234 372 void PelaajanElamat() 235 373 { 236 374 elamaMittari = new DoubleMeter(50); 237 elamaMittari.MaxValue = 25;375 elamaMittari.MaxValue = 50; 238 376 ProgressBar elamaPalkki = new ProgressBar(150, 10); 239 377 elamaPalkki.BindTo(elamaMittari); … … 242 380 elamaPalkki.X = Screen.Right - 150; 243 381 elamaPalkki.Y = Screen.Top - 10; 244 elamaPalkki.Angle = Angle.RightAngle;382 //elamaPalkki.Angle = Angle.RightAngle; 245 383 elamaPalkki.BarColor = Color.Green; 246 384 elamaPalkki.BorderColor = Color.White; 247 elamaPalkki.Angle = Angle.FromDegrees(90);385 //elamaPalkki.Angle = Angle.FromDegrees(90); 248 386 elamaMittari.Value = 50; 249 250 387 elamaMittari.LowerLimit += PelaajaTuhoutuu; 251 252 253 } 388 } 389 254 390 void PelaajaMenettaa(PhysicsObject pelaaja, PhysicsObject kohde) 255 391 { … … 261 397 pelaaja.Destroy(); 262 398 MessageDisplay.Add("Dead"); 399 263 400 Replay(); 264 401 } 402 265 403 void PelaajaMenettaa2(PhysicsObject pelaaja, PhysicsObject kohde) 266 404 { 267 405 elamaMittari.Value -= 5; 268 406 } 407 void PelaajanElamat2() 408 { 409 P2elamaMittari = new DoubleMeter(50); 410 P2elamaMittari.MaxValue = 50; 411 ProgressBar P2elamaPalkki = new ProgressBar(150, 10); 412 P2elamaPalkki.BindTo(P2elamaMittari); 413 Add(P2elamaPalkki); 414 415 P2elamaPalkki.X = Screen.Right - 150; 416 P2elamaPalkki.Y = Screen.Top - 10; 417 P2elamaPalkki.BarColor = Color.Navy; 418 P2elamaPalkki.BorderColor = Color.White; 419 P2elamaMittari.Value = 50; 420 P2elamaMittari.LowerLimit += Pelaaja2Tuhoutuu; 421 } 422 423 void Pelaaja2Menettaa(PhysicsObject pelaaja2, PhysicsObject kohde) 424 { 425 P2elamaMittari.Value -= 3; 426 } 427 428 void Pelaaja2Tuhoutuu(double mittarinArvo) 429 { 430 pelaaja.Destroy(); 431 MessageDisplay.Add("Dead"); 432 433 Replay2(); 434 } 435 void LisaaElamaa2(PhysicsObject pelaaja2, PhysicsObject potion) 436 { 437 potion.Destroy(); 438 P2elamaMittari.Value += 50; 439 440 } 441 442 void Pelaaja2Menettaa2(PhysicsObject pelaaja, PhysicsObject kohde) 443 { 444 elamaMittari.Value -= 5; 445 } 446 void PelaajanElamat3() 447 { 448 P3elamaMittari = new DoubleMeter(50); 449 P3elamaMittari.MaxValue = 50; 450 ProgressBar P3elamaPalkki = new ProgressBar(150, 10); 451 P3elamaPalkki.BindTo(P3elamaMittari); 452 Add(P3elamaPalkki); 453 454 P3elamaPalkki.X = Screen.Left - 150; 455 P3elamaPalkki.Y = Screen.Top - 10; 456 P3elamaPalkki.BarColor = Color.Green; 457 P3elamaPalkki.BorderColor = Color.White; 458 P3elamaMittari.Value = 50; 459 P3elamaMittari.LowerLimit += Pelaaja3Tuhoutuu; 460 } 461 462 void Pelaaja3Menettaa(PhysicsObject pelaaja2, PhysicsObject kohde) 463 { 464 P2elamaMittari.Value -= 3; 465 } 466 467 void Pelaaja3Tuhoutuu(double mittarinArvo) 468 { 469 pelaaja.Destroy(); 470 MessageDisplay.Add("Dead"); 471 472 Replay2(); 473 } 474 void LisaaElamaa3(PhysicsObject pelaaja2, PhysicsObject potion) 475 { 476 potion.Destroy(); 477 P2elamaMittari.Value += 50; 478 479 } 480 481 void Pelaaja3Menettaa2(PhysicsObject pelaaja, PhysicsObject kohde) 482 { 483 elamaMittari.Value -= 5; 484 } 485 269 486 void PelaajaLyo() 270 487 { 488 PhysicsObject Miekka = new PhysicsObject(5, 5); 489 Miekka.IsVisible = false; 490 Miekka.Position = pelaaja.Position; 491 Miekka.Tag = "ase"; 492 AddCollisionHandler(Miekka, "Demoni", DemoniKuolee); 493 AddCollisionHandler(Miekka, "Ampuja", DemoniKuolee); 494 AddCollisionHandler(Miekka, "mage", DemoniKuolee); 495 Miekka.Push(new Vector(20, 0)); 496 Add(Miekka); 271 497 pelaaja.Animation = new Animation(pelaajanAnim); 272 498 pelaaja.Animation.Start(); 273 499 pelaaja.Animation.Played += new Action(AnimValm); 274 pelaaja.Animation.FPS = 5; 275 } 500 pelaaja.Animation.FPS = 10; 501 502 503 } 504 276 505 void AnimValm() 277 506 { 278 507 pelaaja.Animation.Stop(); 279 508 } 509 280 510 void PelaajaLyo2() 281 511 { 512 PhysicsObject Miekka2 = new PhysicsObject(5, 5); 513 Miekka2.IsVisible = false; 514 Miekka2.Position = pelaaja.Position; 515 Miekka2.Tag = "ase"; 516 Miekka2.Push(new Vector(-20, 0)); 517 AddCollisionHandler(Miekka2, "Demoni", DemoniKuolee); 518 AddCollisionHandler(Miekka2, "Ampuja", DemoniKuolee); 519 AddCollisionHandler(Miekka2, "mage", DemoniKuolee); 520 Add(Miekka2); 521 282 522 pelaaja.Animation = new Animation(pelaajanAnimPeilattu); 283 523 pelaaja.Animation.Start(); 284 524 pelaaja.Animation.Played += new Action(AnimValm2); 285 pelaaja.Animation.FPS = 5; 286 } 525 pelaaja.Animation.FPS = 10; 526 527 } 528 287 529 void AnimValm2() 288 530 { 289 531 pelaaja.Animation.Stop(); 290 532 } 291 void PainettiinValikonNappia(int valinta) 533 void PelaajaLyo4() 534 { 535 PhysicsObject Miekka3 = new PhysicsObject(5, 5); 536 Miekka3.IsVisible = false; 537 Miekka3.Position = pelaaja.Position; 538 Miekka3.Tag = "ase"; 539 AddCollisionHandler(Miekka3, "Demoni", DemoniKuolee); 540 AddCollisionHandler(Miekka3, "Ampuja", DemoniKuolee); 541 AddCollisionHandler(Miekka3, "mage", DemoniKuolee); 542 Miekka3.Push(new Vector(20, 0)); 543 Add(Miekka3); 544 pelaaja3.Animation = new Animation(pelaajanAnim); 545 pelaaja3.Animation.Start(); 546 pelaaja3.Animation.Played += new Action(AnimValm3); 547 pelaaja3.Animation.FPS = 10; 548 549 550 } 551 552 void AnimValm3() 553 { 554 pelaaja3.Animation.Stop(); 555 } 556 557 void PelaajaLyo3() 558 { 559 PhysicsObject Miekka4 = new PhysicsObject(5, 5); 560 Miekka4.IsVisible = false; 561 Miekka4.Position = pelaaja.Position; 562 Miekka4.Tag = "ase"; 563 Miekka4.Push(new Vector(-20, 0)); 564 AddCollisionHandler(Miekka4, "Demoni", DemoniKuolee); 565 AddCollisionHandler(Miekka4, "Ampuja", DemoniKuolee); 566 AddCollisionHandler(Miekka4, "mage", DemoniKuolee); 567 Add(Miekka4); 568 569 pelaaja.Animation = new Animation(pelaajanAnimPeilattu); 570 pelaaja.Animation.Start(); 571 pelaaja.Animation.Played += new Action(AnimValm5); 572 pelaaja.Animation.FPS = 10; 573 574 } 575 576 void AnimValm5() 577 { 578 pelaaja3.Animation.Stop(); 579 } 580 581 582 void PainettiinValikonNappiaP1(int valinta) 292 583 { 293 584 switch (valinta) 294 585 { 295 586 case 0: 296 Aloitus("Tutorial map");587 Aloitus("Tutorial map", "Road To War"); 297 588 break; 298 589 299 590 case 1: 300 Aloitus("kartta" );591 Aloitus("kartta", "Field Forces"); 301 592 break; 302 593 303 594 case 2: 304 Aloitus("Kentta2" );595 Aloitus("Kentta2", "Far From Victory"); 305 596 break; 306 597 307 598 case 3: 599 Aloitus("Kentta3", "Field Forces"); 600 break; 601 602 case 4: 603 Begin(); 604 break; 605 606 case 5: 308 607 Exit(); 309 608 break; 310 609 } 311 610 } 312 void Aloitus(string levelFile) 313 { 314 611 void PainettiinValikonNappiaP2(int valinta) 612 { 613 switch (valinta) 614 { 615 case 0: 616 Aloitus2("Tutorial map", "Road To War"); 617 break; 618 619 case 1: 620 Aloitus2("kartta", "Field Forces"); 621 break; 622 623 case 2: 624 Aloitus2("Kentta2", "Far From Victory"); 625 break; 626 627 case 3: 628 Aloitus2("Kentta3", "Field Forces"); 629 break; 630 631 case 4: 632 Begin(); 633 break; 634 635 case 5: 636 Exit(); 637 break; 638 } 639 } 640 641 642 void Aloitus(string levelFile, string kappale) 643 { 644 315 645 pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); 316 646 317 647 LuoKenttä(levelFile); 318 lataaKenttä(); 648 MediaPlayer.Stop(); 649 MediaPlayer.Play(kappale); 319 650 AsetaOhjaimet(); 320 651 } 321 652 void Aloitus2(string levelFile, string kappale) 653 { 654 655 pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); 656 657 LuoKenttä2(levelFile); 658 MediaPlayer.Stop(); 659 MediaPlayer.Play(kappale); 660 AsetaOhjaimet2(); 661 } 662 322 663 323 664 void LuoMaali(Vector paikka, double leveys, double korkeus) 324 665 { 325 PhysicsObject maali = PhysicsObject.CreateStaticObject(40, 40);666 PhysicsObject maali = PhysicsObject.CreateStaticObject(40, 80); 326 667 maali.Position = paikka; 327 maali. Shape = Shape.Pentagon;668 maali.Image = maalinKuva; 328 669 maali.Tag = "maali"; 329 670 maali.Color = Color.Blue; 330 671 331 672 Add(maali); 332 673 } 333 674 void SaavutitMaalin(PhysicsObject pelaaja, PhysicsObject kohde) 334 675 { 676 MediaPlayer.Stop(); 677 MediaPlayer.Play("Opening The"); 335 678 YouWin(); 336 679 } 680 void SaavutitMaalin2(PhysicsObject pelaaja, PhysicsObject kohde) 681 { 682 MediaPlayer.Stop(); 683 MediaPlayer.Play("Opening The"); 684 YouWin2(); 685 } 686 void SaavutitMaalin3(PhysicsObject pelaaja, PhysicsObject kohde) 687 { 688 MediaPlayer.Stop(); 689 MediaPlayer.Play("Opening The"); 690 YouWin2(); 691 } 337 692 void Replay() 338 693 { 339 694 ClearAll(); 340 MultiSelectWindow valikko2 = new MultiSelectWindow("You Died", 695 MediaPlayer.Stop(); 696 MediaPlayer.Play("The Defeated"); 697 MultiSelectWindow valikko2 = new MultiSelectWindow("You Died", 341 698 "Replay", "Menu", "End"); 342 699 valikko2.ItemSelected += PainettiinValikonNappia2; 343 700 Add(valikko2); 344 701 } 345 void PainettiinValikonNappia2(int valinta)702 void PainettiinValikonNappia2(int valinta) 346 703 { 347 704 switch (valinta) … … 364 721 { 365 722 ClearAll(); 366 MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", 723 MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", 367 724 "Replay", "Menu", "End"); 368 valikko3.ItemSelected += PainettiinValikonNappia3;725 valikko3.ItemSelected += PainettiinValikonNappia3; 369 726 Add(valikko3); 370 727 } … … 386 743 } 387 744 } 388 745 void YouWin2() 746 { 747 ClearAll(); 748 MultiSelectWindow valikko3 = new MultiSelectWindow("You Win", 749 "Replay", "Menu", "End"); 750 valikko3.ItemSelected += PainettiinValikonNappiaP2W; 751 Add(valikko3); 752 } 753 void PainettiinValikonNappiaP2W(int valinta) 754 { 755 switch (valinta) 756 { 757 case 0: 758 AloitaUudelleen2(); 759 break; 760 761 case 1: 762 Begin(); 763 break; 764 765 case 2: 766 Exit(); 767 break; 768 } 769 } 770 389 771 void AloitaUudelleen() 390 772 { 391 773 ClearAll(); 392 774 pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); 393 394 775 LuoKenttä(CurrentLevelFile); 395 lataaKenttä();396 776 AsetaOhjaimet(); 397 777 } 778 void AloitaUudelleen2() 779 { 780 ClearAll(); 781 pelaajanAnimPeilattu = Image.Mirror(pelaajanAnim); 782 LuoKenttä2(CurrentLevelFile); 783 AsetaOhjaimet(); 784 } 785 398 786 Brain AivotMage() 399 787 { … … 403 791 seuraajanAivot.FollowAlways = true; 404 792 seuraajanAivot.TargetCloseDistance = 300; 405 406 407 408 793 seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella3; 409 794 return seuraajanAivot; 410 795 } 411 796 412 413 797 void mitaTapahtuuKunOllaanLahella3(object lahettajaAivot, EventArgs e) 798 { 799 //Magen ase on sen lapsiolio eli Objects-listassa paikassa 0. 800 801 PhysicsObject mage = (lahettajaAivot as Brain).Owner as PhysicsObject; 802 803 if (mage == null || mage.Objects.Count < 1) return; 804 805 PlasmaCannon mageAse = (PlasmaCannon)mage.Objects[0]; 806 mageAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; 807 PhysicsObject ammus = mageAse.Shoot(); 808 809 if (ammus != null) 810 { 811 AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); 812 ammus.Tag = "ammus"; 813 } 814 } 815 816 void LuoMage(Vector paikka, double leveys, double korkeus) 817 { 818 819 PhysicsObject Mage = new PhysicsObject(20, 40); 820 Mage.IgnoresGravity = true; 821 Mage.CanRotate = false; 822 Mage.Position = paikka; 823 Mage.Image = magenKuva; 824 Mage.IsVisible = true; 825 Mage.Color = Color.Black; 826 Mage.Tag = "mage"; 827 Mage.Brain = AivotMage(); 828 PlasmaCannon pyssy = new PlasmaCannon(20, 5); 829 Mage.Add(pyssy); 830 pyssy.TimeBetweenUse = TimeSpan.FromSeconds(0.5); 831 pyssy.IsVisible = false; 832 Add(Mage); 833 } 834 Brain AivotHunter() 835 { 836 FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); 837 seuraajanAivot.Speed = 300; 838 seuraajanAivot.TargetFollowDistance = 200; 839 seuraajanAivot.FollowAlways = true; 840 seuraajanAivot.TargetCloseDistance = 200; 841 842 843 844 seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella4; 845 return seuraajanAivot; 846 } 847 848 849 void mitaTapahtuuKunOllaanLahella4(object lahettajaAivot, EventArgs e) 414 850 { 415 851 ((lahettajaAivot as Brain).Owner as PlatformCharacter).Weapon.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; … … 421 857 } 422 858 } 423 void LuoMage(Vector paikka, double leveys, double korkeus) 424 { 425 PhysicsObject Mage = PhysicsObject.CreateStaticObject(20, 40); 426 Mage.Position = paikka; 427 Mage.Image = magenKuva; 428 Mage.Color = Color.Black; 429 Mage.Tag = "mage"; 430 Mage.Brain = AivotMage(); 431 Add(Mage); 432 } 433 859 void LuoHunter(Vector paikka, double leveys, double korkeus) 860 { 861 862 PlatformCharacter hunter = new PlatformCharacter(20, 40); 863 864 hunter.MaxVelocity = 400.400; 865 hunter.Position = paikka; 866 hunter.Image = hunterKuva; 867 hunter.Color = Color.Black; 868 hunter.Tag = "Ampuja"; 869 hunter.Brain = AivotHunter(); 870 AddCollisionHandler(hunter, "piikki", HuntKuoli); 871 hunter.Weapon = new PlasmaCannon(5, 3); 872 hunter.Weapon.TimeBetweenUse = TimeSpan.FromSeconds(3); 873 hunter.Weapon.IsVisible = false; 874 Add(hunter); 875 } 876 void LuoKavlor(Vector paikka, double leveys, double korkeus) 877 { 878 879 PhysicsObject kavlor = new PhysicsObject(20, 40); 880 881 kavlor.MaxVelocity = 400.400; 882 kavlor.Position = paikka; 883 kavlor.Image = kavlorKuva; 884 kavlor.Color = Color.Black; 885 kavlor.Tag = "kavlor"; 886 kavlor.Brain = AivotKavlor(); 887 kavlor.CanRotate = false; 888 PlasmaCannon pyssy = new PlasmaCannon(20, 5); 889 kavlor.Add(pyssy); 890 pyssy.TimeBetweenUse = TimeSpan.FromSeconds(3); 891 pyssy.IsVisible = false; 892 KavlorinElamat(kavlor); 893 AddCollisionHandler(kavlor, "ase", KavlorMenettaa); 894 Add(kavlor); 895 } 896 void HuntKuoli(PhysicsObject hunter, PhysicsObject kohde) 897 { 898 hunter.Destroy(); 899 } 900 void CafgarinElamat(PhysicsObject Cafgar) 901 { 902 elamaMittari2 = new DoubleMeter(25); 903 elamaMittari2.MaxValue = 50; 904 ProgressBar elamaPalkki2 = new ProgressBar(150, 10); 905 elamaPalkki2.BindTo(elamaMittari2); 906 Add(elamaPalkki2); 907 908 elamaPalkki2.X = Screen.Right - 150; 909 elamaPalkki2.Y = Screen.Top - 20; 910 //elamaPalkki.Angle = Angle.RightAngle; 911 elamaPalkki2.BarColor = Color.Red; 912 elamaPalkki2.BorderColor = Color.White; 913 //elamaPalkki.Angle = Angle.FromDegrees(90); 914 elamaMittari2.Value = 50; 915 // elamaMittari.LowerLimit += CafgarKuolee; 916 elamaMittari2.LowerLimit += delegate 917 { 918 Cafgar.Destroy(); 919 YouWin(); 920 }; 921 } 922 923 void CafgarMenettaa(PhysicsObject Cafgar, PhysicsObject kohde) 924 { 925 elamaMittari2.Value -= 5; 926 } 927 void KavlorinElamat(PhysicsObject Kavlor) 928 { 929 elamaMittari3 = new DoubleMeter(25); 930 elamaMittari3.MaxValue = 50; 931 ProgressBar elamaPalkki3 = new ProgressBar(150, 10); 932 elamaPalkki3.BindTo(elamaMittari3); 933 Add(elamaPalkki3); 934 935 elamaPalkki3.X = Screen.Right - 150; 936 elamaPalkki3.Y = Screen.Top - 30; 937 //elamaPalkki.Angle = Angle.RightAngle; 938 elamaPalkki3.BarColor = Color.Purple; 939 elamaPalkki3.BorderColor = Color.White; 940 //elamaPalkki.Angle = Angle.FromDegrees(90); 941 elamaMittari3.Value = 50; 942 // elamaMittari.LowerLimit += CafgarKuolee; 943 elamaMittari3.LowerLimit += delegate 944 { 945 Kavlor.Destroy(); 946 YouWin(); 947 }; 948 } 949 950 void KavlorMenettaa(PhysicsObject Kavlor, PhysicsObject kohde) 951 { 952 elamaMittari3.Value -= 5; 953 } 954 Brain AivotKavlor() 955 { 956 FollowerBrain seuraajanAivot = new FollowerBrain(pelaaja); 957 seuraajanAivot.Speed = 300; 958 seuraajanAivot.TargetFollowDistance = 100; 959 seuraajanAivot.FollowAlways = true; 960 seuraajanAivot.TargetCloseDistance = 200; 961 seuraajanAivot.TargetClose += mitaTapahtuuKunOllaanLahella5; 962 return seuraajanAivot; 963 } 964 965 void mitaTapahtuuKunOllaanLahella5(object lahettajaAivot, EventArgs e) 966 { 967 //Magen ase on sen lapsiolio eli Objects-listassa paikassa 0. 968 969 PhysicsObject kavlor = (lahettajaAivot as Brain).Owner as PhysicsObject; 970 971 if (kavlor == null || kavlor.Objects.Count < 1) return; 972 973 PlasmaCannon kavlorAse = (PlasmaCannon)kavlor.Objects[0]; 974 kavlorAse.Angle = (pelaaja.Position - (lahettajaAivot as Brain).Owner.Position).Angle; 975 PhysicsObject ammus = kavlorAse.Shoot(); 976 977 if (ammus != null) 978 { 979 AddCollisionHandler(ammus, pelaaja, PelaajaMenettaa2); 980 ammus.Tag = "ammus"; 981 } 982 } 983 void EPotion(Vector paikka, double leveys, double korkeus) 984 { 985 PhysicsObject potion = new PhysicsObject(20, 20); 986 potion.Position = paikka; 987 potion.CanRotate = false; 988 potion.Shape = Shape.Heart; 989 potion.Color = Color.Red; 990 potion.Tag = "peruna"; 991 Add(potion); 992 } 993 void LisaaElamaa(PhysicsObject pelaaja, PhysicsObject potion) 994 { 995 potion.Destroy(); 996 elamaMittari.Value += 50; 997 998 } 999 void P1MSW() 1000 { 1001 MultiSelectWindow valikko = new MultiSelectWindow("One Player", 1002 "tutorial", "Level 1", "Level 2", "Level 3", "Menu", "Exit"); 1003 valikko.ItemSelected += PainettiinValikonNappiaP1; 1004 Add(valikko); 1005 } 1006 void P2MSW() 1007 { 1008 MultiSelectWindow valikko = new MultiSelectWindow("Two Players", 1009 "tutorial", "Level 1", "Level 2", "Level 3", "Menu", "Exit"); 1010 valikko.ItemSelected += PainettiinValikonNappiaP2; 1011 Add(valikko); 1012 } 1013 void Replay2() 1014 { 1015 ClearAll(); 1016 MediaPlayer.Stop(); 1017 MediaPlayer.Play("The Defeated"); 1018 MultiSelectWindow valikko2 = new MultiSelectWindow("You Died", 1019 "Replay", "Menu", "End"); 1020 valikko2.ItemSelected += PainettiinValikonNappiaP22; 1021 Add(valikko2); 1022 } 1023 void PainettiinValikonNappiaP22(int valinta) 1024 { 1025 switch (valinta) 1026 { 1027 1028 case 0: 1029 AloitaUudelleen2(); 1030 break; 1031 1032 case 1: 1033 Begin(); 1034 break; 1035 1036 case 2: 1037 Exit(); 1038 break; 1039 } 1040 } 434 1041 } 435
Note: See TracChangeset
for help on using the changeset viewer.