Time for action - player collisions

  1. Add the checkShotToPlayerCollision() method to the CollisionManager class:
    private void checkShotToPlayerCollisions()
    {
    foreach (Sprite shot in enemyManager.EnemyShotManager.Shots)
    {
    if (shot.IsCircleColliding(
    playerManager.playerSprite.Center,
    playerManager.playerSprite.CollisionRadius))
    {
    shot.Location = offScreen;
    playerManager.Destroyed = true;
    explosionManager.AddExplosion(
    playerManager.playerSprite.Center,
    Vector2.Zero);
    }
    }
    }
    
  2. Add the checkEnemyToPlayerCollisions() method to the CollisionManager class:
    private void checkEnemyToPlayerCollisions()
    {
    foreach (Enemy enemy in enemyManager.Enemies)
    {
    if (enemy.EnemySprite.IsCircleColliding(
    playerManager.playerSprite.Center,
    playerManager.playerSprite.CollisionRadius))
    {
    enemy.Destroyed = true;
    explosionManager.AddExplosion(
    enemy.EnemySprite.Center,
    enemy.EnemySprite.Velocity / 10);
    playerManager.Destroyed = true;
    explosionManager.AddExplosion(
    playerManager.playerSprite.Center,
    Vector2.Zero);
    }
    }
    }
    
  3. Add the checkAsteroidToPlayerCollisions() method to the CollisionManager class:
    private void checkAsteroidToPlayerCollisions()
    {
    foreach (Sprite asteroid in asteroidManager.Asteroids)
    {
    if (asteroid.IsCircleColliding(
    playerManager.playerSprite.Center,
    playerManager.playerSprite.CollisionRadius))
    {
    explosionManager.AddExplosion(
    asteroid.Center,
    asteroid.Velocity/10);
    asteroid.Location = offScreen;
    playerManager.Destroyed = true;
    explosionManager.AddExplosion(
    playerManager.playerSprite.Center,
    Vector2.Zero);
    }
    }
    }
    

What just happened?

There is only a single loop in each of the ...ToPlayerCollisions() methods, since all of the objects are being compared to the single player object, but otherwise the code is very similar. In each case, the player is marked as Destroyed, which we will detect during Game1's update loop.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.191.135.224