示例#1
0
 public void Spawn(ref Ship ship, Vector2 position, Vector2 velocity)
 {
     Ship = ship;
     Position = new Vector3(position, 0.0f);
     Velocity = new Vector3(velocity, 0.0f);
     Alive = true;
 }
 public void CreateShips()
 {
     for (int i = 0; i < Ships.Capacity; i++)
     {
         Ship s = new Ship();
         Ships.Add(s);
         AddChild(s);
     }
 }
 public void SpawnBullet(ref Ship ship, Vector2 position, Vector2 velocity)
 {
     for (int i = 0; i < Bullets.Capacity; i++)
     {
         if (!Bullets[i].Alive)
         {
             Bullets[i].Spawn(ref ship, position, velocity);
             return;
         }
     }
 }
 public void ActivateShip(bool playerShip)
 {
     for (int i = 0; i < Ships.Capacity; i++)
     {
         if (!Ships[i].Active)
         {
             Ships[i].Activate();
             if (playerShip)
                 PlayerShip = Ships[i];
             Ships[i].Spawn();
             return;
         }
     }
 }
示例#5
0
        public void Fire(ref Ship ship, Vector2 velocity)
        {
            if (Alive)
            {
                if (FireDelay <= 0)
                {
                    velocity.Normalize();
                    float angle = (float)Math.Atan2(velocity.Y, velocity.X);
                    ((GameplayScene)Scene).BulletManager.SpawnBullet(ref ship, new Vector2(Position.X, Position.Y) + velocity * Radius * 2, velocity * Bullet.Speed);
                    ((GameplayScene)Scene).BulletManager.SpawnBullet(ref ship, new Vector2(Position.X, Position.Y) + velocity * Radius * 2, new Vector2((float)Math.Cos(angle + MathHelper.ToRadians(5.0f)), (float)Math.Sin(angle + MathHelper.ToRadians(5.0f))) * Bullet.Speed);
                    ((GameplayScene)Scene).BulletManager.SpawnBullet(ref ship, new Vector2(Position.X, Position.Y) + velocity * Radius * 2, new Vector2((float)Math.Cos(angle - MathHelper.ToRadians(5.0f)), (float)Math.Sin(angle - MathHelper.ToRadians(5.0f))) * Bullet.Speed);
                    FireDelay = Ship.FireSpeed;

                    ((GameplayScene)Scene).AudioManager.PlaySound("ClosedHihat", Position, Velocity);
                }
            }
        }