public static LinearMovement create(Vector2 position, float verticalOffset, float angle, float speed = DEFAULT_SPEED)
        {
            // Adjust the position slightly to match the muzzle of the cannon.
            position.Y += 37 + verticalOffset;

            if (Math.Cos(angle) >= 0.0f)
            {
                position.X += 70;
            }
            else
            {
                position.X -= 70;
            }

            var direction = new Vector2();

            direction.X = (float)Math.Cos((double)angle);
            direction.Y = (float)Math.Sin((double)angle);

            var m = new LinearMovement(position, direction);

            m.MoveSpeed = speed;

            return(m);
        }
 protected override void Fire(GameTime gameTime)
 {
     for (var i = 0; i < nbBullets; i++)
     {
         _game.AddLaser(LinearMovement.create(_entity.Position, -10f, 360.0f / nbBullets * i), _collisionLayers);
     }
 }
 protected override void Fire(GameTime gameTime)
 {
     // Add the laer to our list.
     _game.AddLaser(LinearMovement.create(_entity.Position, -10f, -30.0f * (float)Math.PI / 180.0f), _collisionLayers);
     _game.AddLaser(LinearMovement.create(_entity.Position, 0f, 0.0f), _collisionLayers);
     _game.AddLaser(LinearMovement.create(_entity.Position, 10f, 30.0f * (float)Math.PI / 180.0f), _collisionLayers);
 }
示例#4
0
        protected override void Fire(GameTime gameTime)
        {
            Vector2 gravity = new Vector2(0, 1);

            _game.AddLaser(GravityMovement.Create(_entity.Position, -10f, 0, gravity, 20), _collisionLayers);
            gravity = new Vector2(0, -1);
            _game.AddLaser(GravityMovement.Create(_entity.Position, -10f, 0, gravity, 20), _collisionLayers);
            _game.AddLaser(LinearMovement.create(_entity.Position, -10f, 0), _collisionLayers);
        }
示例#5
0
 public override void OnEnter()
 {
     _enemy.EnemyAnimation.Color = Color.White;
     _enemy.Movement             = LinearMovement.create(_enemy.Position, 0, 0, 5f);
 }
 protected override void Fire(GameTime gameTime)
 {
     _game.AddLaser(LinearMovement.create(_entity.Position, -10f, 0.0f), _collisionLayers);
     _game.AddLaser(LinearMovement.create(_entity.Position, -10f, 180.0f), _collisionLayers);
 }
示例#7
0
 protected virtual void Fire(GameTime gameTime)
 {
     _game.AddLaser(LinearMovement.create(_entity.Position, 0f, _weaponAngle), _collisionLayers);
 }