public bool IsBelow(PowerupBlock collider) { if (!collider.collidable) { return(false); } int yDistance = collider.Bounds.Bottom - Bounds.Top; int yDistfeet = collider.Bounds.Top - Bounds.Bottom; int leftDistance = Bounds.Right - collider.Bounds.Left; int rightDistance = collider.Bounds.Right - Bounds.Left; if (yDistance >= -10 && yDistfeet <= -7 && leftDistance >= 5 && rightDistance >= 5) { return(true); } return(false); }
private void PlayerCollision(PowerupBlock powerupBlock, GameTime gameTime) { if (player.IsBelow(powerupBlock)) { if (!powerupBlock.collided) { powerupBlock.collided = true; } } if (powerupBlock.powerup != null) { if (player.Bounds.Intersects(powerupBlock.powerup.Bounds) && powerupBlock.powerup.Type == Powerup.PowerupType.FireFlower) { player.powerupTimer = 10000; powerupBlock.powerup.isDead = true; } } }