Changeset 5288 for 2014/27/MikkoL/LM2/LM2/LM2/LM2.cs
- Timestamp:
- 2014-07-02 14:30:23 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
2014/27/MikkoL/LM2/LM2/LM2/LM2.cs
r5248 r5288 57 57 { 58 58 player player = new player(5, 5); 59 PhysicsObject playership = new PhysicsObject( 37, 48);60 double player_speed = 4 00;59 PhysicsObject playership = new PhysicsObject(47, 46); 60 double player_speed = 425; 61 61 Vector stagespeed = new Vector(-500,0); 62 Vector cntr = new Vector(0, 0); 62 63 63 64 bool BlazeIt = false; … … 65 66 //Player 66 67 Image player_ship_01 = LoadImage("player_ship_01"); 68 Image player_ship_02 = LoadImage("player_ship_02"); 67 69 //Bullets 68 70 Image bullet_green_laser01 = LoadImage("bullet_green_laser01"); 69 Image bullet_player = LoadImage("bullet_player"); 71 72 Image bullet_player01 = LoadImage("bullet_player"); 73 Image bullet_player02 = LoadImage("bullet_player02"); 74 Image bullet_player03 = LoadImage("bullet_player03"); 75 Image bullet_player04 = LoadImage("bullet_player04"); 76 Image bullet_player05 = LoadImage("bullet_player05"); 70 77 //Enemies 71 78 Image enemy_ship_01 = LoadImage("enemy_ship_01"); 72 79 Image enemy_ship_01_red = LoadImage("enemy_ship_01_red"); 80 Image enemy_ship_02 = LoadImage("enemy_ship_02"); 81 Image enemy_ship_02_inverted = LoadImage("enemy_ship_02_inverted"); 82 //Powerups 83 Image powerup_damage = LoadImage("powerup_damage"); 84 Image powerup_spread = LoadImage("powerup_spread"); 85 86 //SFX 87 SoundEffect hurtsfx = LoadSoundEffect("hurt"); 88 SoundEffect hitsfx = LoadSoundEffect("hit"); 89 SoundEffect shootsfx = LoadSoundEffect("shoot"); 90 SoundEffect powerupsfx = LoadSoundEffect("powerup"); 91 SoundEffect explosionsfx = LoadSoundEffect("explosion"); 73 92 74 93 //Weapon 75 double wpn_shootRate = 0. 05;76 int wpn_damageRatio = 1;94 double wpn_shootRate = 0.1; 95 IntMeter wpn_damageRatio = new IntMeter(1, 1, 10); 77 96 DoubleMeter wpn_spread = new DoubleMeter(1,1,10); 78 97 98 //Collision ignore groups 99 //2: player bullets 100 //3: enemies 101 //4: powerups 79 102 80 103 Timer wpn_timer = new Timer(); … … 83 106 public override void Begin() 84 107 { 108 hurtsfx.Play(); 109 explosionsfx.Play(); 110 hitsfx.Play(); 111 shootsfx.Play(); 112 powerupsfx.Play(); 113 85 114 SetWindowSize(1280, 800, false); 115 SmoothTextures = false; 116 Level.Size = new Vector(1280, 800); 86 117 87 118 Keyboard.Listen(Key.Escape, ButtonState.Pressed, ConfirmExit, "Lopeta peli"); … … 134 165 lvl.SetTileMethod('1', enemy_ship_1); 135 166 lvl.SetTileMethod('R', enemy_ship_1_red); 167 lvl.SetTileMethod('B', enemy_ship_2_bottom); 168 lvl.SetTileMethod('T', enemy_ship_2_top); 136 169 lvl.Execute(35, 35); 137 170 // 138 171 139 172 … … 156 189 border.KineticFriction = 0; 157 190 border.StaticFriction = 0; 158 border.Color = Color. Lighter(Color.Black, 20);191 border.Color = Color.Black; 159 192 border.Tag = "border"; 160 193 Add(border, 1); … … 165 198 border2.KineticFriction = 0; 166 199 border2.StaticFriction = 0; 167 border2.Color = Color. Lighter(Color.Black, 20);200 border2.Color = Color.Black; 168 201 border2.Tag = "border"; 169 202 Add(border2, 0); … … 232 265 void AddPlayer(Vector pos, double width, double height) 233 266 { 267 cntr = pos; 268 234 269 player.Shape = Shape.Circle; 235 270 player.Color = Color.Red; … … 250 285 if (BlazeIt) strobePlr.Start(); 251 286 252 playership.Image = player_ship_0 1;287 playership.Image = player_ship_02; 253 288 playership.IgnoresCollisionResponse = true; 254 289 playership.IgnoresPhysicsLogics = true; 255 290 playership.Angle = Angle.FromDegrees(-90); 256 291 playership.CanRotate = false; 292 playership.Tag = "playership"; 257 293 //playership.Parent = player; 258 294 playership.Position = player.Position; … … 296 332 //cheat 297 333 Keyboard.Listen(Key.U, ButtonState.Pressed, cheat_upgrade, null); 334 Keyboard.Listen(Key.I, ButtonState.Pressed, cheat_damage, null); 298 335 } 299 336 void move(AnalogState speed) 300 337 { 301 player.Velocity = speed.StateVector * player_speed; 302 } 338 player.Velocity = speed.StateVector * player_speed / (ControllerOne.LeftTriggerState+1); 339 } 340 303 341 void cheat_upgrade() 304 342 { 305 343 wpn_spread.Value++; 344 } 345 void cheat_damage() 346 { 347 wpn_damageRatio.Value++; 306 348 } 307 349 … … 324 366 Weapon(); 325 367 wpn_timer.Interval = wpn_shootRate; 368 shootsfx.Play(); 326 369 } 327 370 }; … … 453 496 projectile.Position = pos; 454 497 projectile.Tag = "player_bullet"; 455 if (!BlazeIt) projectile.Image = bullet_player; 456 projectile.damage = wpn_damageRatio; 498 499 if (wpn_damageRatio <= 2) projectile.Image = bullet_player01; 500 else if (wpn_damageRatio.Value <= 4) projectile.Image = bullet_player03; 501 else if (wpn_damageRatio.Value <= 6) projectile.Image = bullet_player04; 502 else if (wpn_damageRatio.Value <= 8) projectile.Image = bullet_player02; 503 else if (wpn_damageRatio.Value <= 10) projectile.Image = bullet_player05; 504 if (BlazeIt) projectile.Image = null; 505 projectile.damage = wpn_damageRatio.Value; 457 506 projectile.IgnoresCollisionResponse = true; 458 507 … … 486 535 enemyship.Position = pos; 487 536 enemyship.IgnoresCollisionResponse = true; 488 enemyship.health.MaxValue = 8; 537 enemyship.CollisionIgnoreGroup = 3; 538 enemyship.health.MaxValue = 6; 489 539 enemyship.Image = enemy_ship_01; 490 540 … … 496 546 void enemy_ship_1_frontborder(enemy enemyship, frontborder border) 497 547 { 498 enemyship.LifetimeLeft = TimeSpan.FromSeconds( 4);548 enemyship.LifetimeLeft = TimeSpan.FromSeconds(3); 499 549 } 500 550 void enemy_ship_1_red(Vector pos, double width, double height) … … 505 555 enemyship.Position = pos; 506 556 enemyship.IgnoresCollisionResponse = true; 507 enemyship.health.MaxValue = 8;557 enemyship.health.MaxValue = 6; 508 558 enemyship.Image = enemy_ship_01_red; 559 enemyship.CollisionIgnoreGroup = 3; 509 560 510 561 Add(enemyship); … … 520 571 enemyship.Velocity = -stagespeed; 521 572 enemyship.Position = new Vector(border.X-1400, enemyship.Position.Y); 522 enemyship.LifetimeLeft = TimeSpan.FromSeconds( 4);573 enemyship.LifetimeLeft = TimeSpan.FromSeconds(3); 523 574 524 575 enemyship.canShoot = true; 525 576 }; 526 577 } 578 void enemy_ship_2_bottom(Vector pos, double width, double height) 579 { 580 enemy enemyship = new enemy(30, 70); 581 enemyship.Shape = Shape.Circle; 582 enemyship.Color = Color.Black; 583 enemyship.Position = pos; 584 enemyship.IgnoresCollisionResponse = true; 585 enemyship.CollisionIgnoreGroup = 3; 586 enemyship.health.MaxValue = 6; 587 enemyship.Image = enemy_ship_02; 588 enemyship.Angle = Angle.FromDegrees(90); 589 590 Add(enemyship); 591 enemyship.Hit(stagespeed); 592 AddCollisionHandler<enemy, player>(enemyship, damagePlayerEnemyShip); 593 AddCollisionHandler<PhysicsObject, frontborder>(enemyship, enemy_ship_2_bottom_frontborder); 594 } 595 void enemy_ship_2_bottom_frontborder(PhysicsObject enemyship, frontborder br) 596 { 597 enemyship.LifetimeLeft = TimeSpan.FromSeconds(3); 598 enemyship.Angle = Angle.FromDegrees(0); 599 enemyship.Velocity = new Vector(0, -stagespeed.X/1.7); 600 enemyship.Position = new Vector(cntr.X + enemyship.Y, -405); 601 } 602 void enemy_ship_2_top(Vector pos, double width, double height) 603 { 604 enemy enemyship = new enemy(30, 70); 605 enemyship.Shape = Shape.Circle; 606 enemyship.Color = Color.Black; 607 enemyship.Position = pos; 608 enemyship.IgnoresCollisionResponse = true; 609 enemyship.CollisionIgnoreGroup = 3; 610 enemyship.health.MaxValue = 6; 611 enemyship.Image = enemy_ship_02_inverted; 612 enemyship.Angle = Angle.FromDegrees(90); 613 614 Add(enemyship); 615 enemyship.Hit(stagespeed); 616 AddCollisionHandler<enemy, player>(enemyship, damagePlayerEnemyShip); 617 AddCollisionHandler<PhysicsObject, frontborder>(enemyship, enemy_ship_2_top_frontborder); 618 } 619 void enemy_ship_2_top_frontborder(PhysicsObject enemysship, frontborder br) 620 { 621 enemysship.LifetimeLeft = TimeSpan.FromSeconds(3); 622 enemysship.Angle = Angle.FromDegrees(0); 623 enemysship.Velocity = new Vector(0, stagespeed.X / 1.75); 624 625 enemysship.Position = new Vector(cntr.X + enemysship.Y, 405); 626 } 627 628 //Power-ups 629 void powerup(Vector pos) 630 { 631 int a = RandomGen.NextInt(1, 10); 632 if (a == 1) 633 { 634 createPowerup(pos); 635 }; 636 } 637 void createPowerup(Vector pos) 638 { 639 int type = RandomGen.NextInt(1, 4); 640 641 PhysicsObject powerup = new PhysicsObject(13, 13); 642 powerup.Position = pos; 643 powerup.Tag = "powerup"; 644 powerup.IgnoresCollisionResponse = true; 645 powerup.CollisionIgnoreGroup = 4; 646 powerup.MaximumLifetime = TimeSpan.FromSeconds(5); 647 648 FollowerBrain powerup_follow = new FollowerBrain(player); 649 powerup_follow.DistanceFar = 300; 650 powerup_follow.Speed = 500; 651 powerup_follow.Active = true; 652 653 powerup.Brain = powerup_follow; 654 655 if (type <= 2) 656 { 657 powerup.Image = powerup_damage; 658 AddCollisionHandler(powerup, "playership", powerupdamage); 659 } 660 else if (type >= 3) 661 { 662 powerup.Image = powerup_spread; 663 AddCollisionHandler(powerup, "playership", powerupspread); 664 } 665 666 Add(powerup, -2); 667 } 668 void powerupdamage(PhysicsObject powerup, PhysicsObject p) 669 { 670 wpn_damageRatio.Value++; 671 powerup.Destroy(); 672 powerupsfx.Play(); 673 } 674 void powerupspread(PhysicsObject powerup, PhysicsObject p) 675 { 676 wpn_spread.Value++; 677 powerup.Destroy(); 678 powerupsfx.Play(); 679 } 527 680 528 681 //Misc … … 535 688 p.health.Value = p.health.Value - 10; 536 689 b.Destroy(); 690 hurtsfx.Play(); 537 691 } 538 692 void damagePlayerBullet(bullet b, player p) … … 540 694 p.health.Value = p.health.Value - b.damage; 541 695 b.Destroy(); 696 hurtsfx.Play(); 542 697 } 543 698 void damageEnemy(bullet b, enemy e) 544 699 { 545 700 e.health.Value = e.health.Value - b.damage; 701 if (e.health.Value <= 0) 702 { 703 powerup(e.Position); 704 explosionsfx.Play(); 705 }; 706 hitsfx.Play(); 546 707 b.Destroy(); 708 547 709 } 548 710 }
Note: See TracChangeset
for help on using the changeset viewer.