示例#1
0
        public virtual void Update(GameTime gameTime, Islander.GameState gameState)
        {
            if (gameState == Islander.GameState.RunningGame)
            {
                Boat.Update(gameTime);
                Island.Update(gameTime);

                /*foreach (Bullet bullet in Bullets)
                 * {
                 *
                 *
                 * }*/



                for (int i = Bullets.Count - 1; i >= 0; i--)
                {
                    Bullets[i].Update(gameTime);
                    if (Bullets[i].done)
                    {
                        RemoveBullet(Bullets[i]);
                    }
                }
            }
        }
示例#2
0
        public virtual void HandleInput(Islander.GameState gameState, GameTime gameTime)
        {
            // get the keyboard state
            KeyboardState keyboardState = Keyboard.GetState();

            // get the current player's gamepad state
            GamePadState gamePadState = GamePad.GetState(PlayerIndex);

            // if no input detected, there is no message to send
            Message = InputMessage.NoMessage;

            bulletTimeElapsed += gameTime.ElapsedGameTime;

            // keyboard input
            if (keyboardState.IsKeyDown(Keys.Enter))
            {
                Message = InputMessage.SkipToNextScreen;
            }
            else if (gameState == Islander.GameState.RunningGame)
            {
                CheckShooting(keyboardState);

                Boat.HandleInput(keyboardState);
            }

            // gamepad input
            if (!gamePadState.IsConnected)
            {
                //Debug.WriteLine("Player " + PlayerIndex.ToString() + "'s controller is disconnected.");
                return;
            }
            else
            {
                if (gamePadState.Buttons.Start == ButtonState.Pressed)
                {
                    Message = InputMessage.SkipToNextScreen;
                }
                else if (gameState == Islander.GameState.RunningGame)
                {
                    Boat.HandleInput(gamePadState.ThumbSticks.Left);

                    CheckShooting(gamePadState.ThumbSticks.Right);
                }
            }
        }
示例#3
0
        public virtual void Update(GameTime gameTime, Islander.GameState gameState)
        {
            if (gameState == Islander.GameState.RunningGame)
            {
                Boat.Update(gameTime);
                Island.Update(gameTime);

                // update bullets and remove any that have expired
                var expiredBullets = new List <Bullet>();
                foreach (var bullet in Bullets)
                {
                    bullet.Update(gameTime);
                    if (bullet.Expired)
                    {
                        expiredBullets.Add(bullet);
                    }
                }
                foreach (var bullet in expiredBullets)
                {
                    RemoveBullet(bullet);
                }
            }
        }
示例#4
0
 public GameOverScreen(Islander.GameState gameState)
 {
     GameState = gameState;
 }
示例#5
0
 public MainGameScreen(Islander.GameState gameState)
 {
     GameState = gameState;
 }
示例#6
0
 public MainMenuScreen(Islander.GameState gameState)
 {
     GameState = gameState;
     state     = MainState.start;
 }