示例#1
0
        public override void Update(GameTime gameTime)
        {
            switch (aiType)
            {
            case AIType.AngleLeft:
            {
                currentFrame = EnemyAnimFrame.Left;
                xPos        -= speed / 2;
                yPos        += speed;

                break;
            }

            case AIType.AngleRight:
            {
                currentFrame = EnemyAnimFrame.Right;
                xPos        += speed / 2;
                yPos        += speed;

                break;
            }

            case AIType.Basic:
            {
                yPos += speed;
                if (fireCooldownRemaining <= 0.0f)
                {
                    Vector2 bulletPosition = new Vector2((float)xPos + gunBarrelOffset.X, (float)yPos + gunBarrelOffset.Y);
                    game.AddNewBullet(BulletType.FireBall, Direction.South, Team.Enemy, bulletPosition);

                    fireCooldownRemaining = fireDelay;
                }
                else
                {
                    fireCooldownRemaining -= gameTime.ElapsedGameTime.TotalSeconds;
                }
                break;
            }

            case AIType.ZigZag:
            default:
            {
                yPos += speed;


                break;
            }
            }   // end switch
        }
示例#2
0
        public override void Update(GameTime gameTime)
        {
            switch (aiType)
            {
                case AIType.AngleLeft:
                    {
                        currentFrame = EnemyAnimFrame.Left;
                        xPos -= speed / 2;
                        yPos += speed;

                        break;
                    }
                case AIType.AngleRight:
                    {
                        currentFrame = EnemyAnimFrame.Right;
                        xPos += speed / 2;
                        yPos += speed;

                        break;
                    }
                case AIType.Basic:
                    {
                        yPos += speed;
                        if (fireCooldownRemaining <= 0.0f)
                        {
                            Vector2 bulletPosition = new Vector2((float)xPos + gunBarrelOffset.X, (float)yPos + gunBarrelOffset.Y);
                            game.AddNewBullet(BulletType.FireBall, Direction.South, Team.Enemy, bulletPosition);

                            fireCooldownRemaining = fireDelay;
                        }
                        else
                        {
                            fireCooldownRemaining -= gameTime.ElapsedGameTime.TotalSeconds;

                        }
                        break;
                    }
                case AIType.ZigZag:
                default:
                    {
                        yPos += speed;

                        break;
                    }
            }   // end switch
        }