コード例 #1
0
        protected override void SecondaryShootingPattern(GameTime gameTime)
        {
            double width         = 2 * Math.PI;
            int    numberOfShots = 6;

            double randomOffset = random.NextDouble() * Math.PI * 2;

            List <double> spreadDirections = MathFunctions.GetSpreadDirList(width, numberOfShots);

            foreach (double dir in spreadDirections)
            {
                EnemyWeakRedLaser laser1 = new EnemyWeakRedLaser(Game, spriteSheet);
                laser1.PositionX = PositionX;
                laser1.PositionY = PositionY;

                double shootDir = dir + randomOffset;

                laser1.Direction = MathFunctions.DirFromRadians(shootDir);
                laser1.Initialize();
                laser1.Speed    *= 1.0f;
                laser1.Duration *= 0.4f;

                Game.stateManager.shooterState.gameObjects.Add(laser1);
            }
        }
コード例 #2
0
        protected override void SecondaryShootingPattern(GameTime gameTime)
        {
            double width         = Math.PI;
            double numberOfShots = 7;

            List <double> spreadDirections = MathFunctions.GetSpreadDirList(width, numberOfShots);

            int shotNbr    = 0;
            int centerShot = (int)(numberOfShots / 2) + 1;

            foreach (double dir in spreadDirections)
            {
                shotNbr++;
                if (shotNbr == centerShot)
                {
                    continue;
                }

                EnemyWeakRedLaser laser = new EnemyWeakRedLaser(Game, spriteSheet);
                laser.Position  = Position;
                laser.Direction = MathFunctions.DirFromRadians(dir);
                laser.Initialize();

                laser.Speed    *= 0.3f;
                laser.Duration *= 1.5f;

                Game.stateManager.shooterState.gameObjects.Add(laser);
            }
        }
コード例 #3
0
        protected override void ShootingPattern(GameTime gameTime)
        {
            double width         = Math.PI / 12;
            double numberOfShots = 3;

            foreach (double dir in MathFunctions.GetSpreadDirList(width, numberOfShots))
            {
                EnemyWeakBlueLaser laser1 = new EnemyWeakBlueLaser(Game, spriteSheet);
                laser1.PositionX = PositionX;
                laser1.PositionY = PositionY;
                laser1.Direction = MathFunctions.DirFromRadians(dir);
                laser1.Initialize();
                laser1.Speed    *= 1.5f;
                laser1.Duration *= 2.0f;

                Game.stateManager.shooterState.gameObjects.Add(laser1);
            }
        }