public void Update(double elapsedTime) { _shootCountDown = _shootCountDown - elapsedTime; if (_shootCountDown <= 0) { Bullet bullet = new Bullet(_bulletTexture); Vector currentPosition = _sprite.GetPosition(); Vector bulletDir = _playerCharacter.GetPosition() - currentPosition; bulletDir = bulletDir.Normalize(bulletDir); bullet.Direction = bulletDir; bullet.Speed = 350; //bullet.Direction = new Vector(-1, 0, 0); bullet.SetPosition(_sprite.GetPosition()); bullet.SetColor(new Engine.Color(1, 0, 0, 1)); _bulletManager.EnemyShoot(bullet); RestartShootCountDown(); } if (Path != null) { Path.UpdatePosition(elapsedTime, this); } if (_hitFlashCountDown != 0) { _hitFlashCountDown = Math.Max(0, _hitFlashCountDown - elapsedTime); double scaledTime = 1 - (_hitFlashCountDown / HitFlashTime); _sprite.SetColor(new Engine.Color(1, 1, (float)scaledTime, 1)); } }
public void Fire() { if (_fireRecoveryTime > 0) { return; } else { _fireRecoveryTime = FireRecovery; } Bullet bullet = new Bullet(_bulletTexture); bullet.SetColor(new Color(0, 1, 0, 1)); bullet.SetPosition(_sprite.GetPosition() + _gunOffset); _bulletManager.Shoot(bullet); }