Exemple #1
0
        protected override void OnMouseMove(MouseEventArgs e)
        {
            base.OnMouseMove(e);
            int X = e.Location.X;
            int Y = e.Location.Y;

            if (Y > 0 && Y < (Height - 2))
            {
                if (X > 0 && X < 30)
                {
                    ButtonState = ButtonHover.Minimize;
                }
                else if (X > 31 && X < Width)
                {
                    ButtonState = ButtonHover.Close;
                }
                else
                {
                    ButtonState = ButtonHover.None;
                }
            }
            else
            {
                ButtonState = ButtonHover.None;
            }
            Invalidate();
        }
Exemple #2
0
    private void OnButtonChange(ButtonHover button, bool selecte)
    {
        if (selecte)
        {
            for (int i = 0; i < _buttonEvents.Count; i++)
            {
                if (_buttonEvents[i] != button)
                {
                    _buttonEvents[i].UnSelected();
                }
            }
        }
        else
        {
            bool isSelected = false;

            for (int i = 0; i < _buttonEvents.Count; i++)
            {
                if (_buttonEvents[i].IsSelected)
                {
                    isSelected = true;
                }
                else
                {
                    _buttonEvents[i].UnSelected();
                }
            }

            if (!isSelected)
            {
                _buttonEvents[0].SetIsSelected();
            }
        }
    }
Exemple #3
0
 protected override void OnMouseLeave(EventArgs e)
 {
     base.OnMouseLeave(e);
     ButtonState = ButtonHover.None;
     Invalidate();
 }
        protected override void Update(GameTime gameTime)
        {
            //Loops game music
            if (MediaPlayer.State == MediaState.Paused || MediaPlayer.State == MediaState.Stopped)
                MediaPlayer.Play(mainThemeSong);

            //Exit Game
            if (Keyboard.GetState().IsKeyDown(Keys.Escape) && gameState == GameState.MainMenu)
                this.Exit();
            // Pause game
            if (Keyboard.GetState().IsKeyDown(Keys.Escape) && gameState == GameState.Play)
                gameState = GameState.PauseGame;

            if (Keyboard.GetState().IsKeyDown(Keys.P) && gameState == GameState.Play)
                player1Health--;

            if (Keyboard.GetState().IsKeyDown(Keys.T) && gameState == GameState.Play)
                gameState = GameState.End;

            Point mousePoint = new Point(Mouse.GetState().X, Mouse.GetState().Y);
            switch (gameState)
            {
                case GameState.MainMenu:
                    IsMouseVisible = true; //Mouse!

                    if (startButtonPos.Contains(mousePoint))
                    {
                        if (currentHoverCount > hoverTime)
                        {
                            buttonHover = ButtonHover.StartButton;
                            if (letterSplatLength < startString.Count())
                            {
                                letterSplatLength++;
                            }
                            currentHoverCount = 0;
                        }
                        else
                        {
                            currentHoverCount++;
                        }
                    }
                    else
                    {
                        letterSplatLength = 0;
                    }
                    if (Mouse.GetState().LeftButton == ButtonState.Pressed)
                    {
                        if (startButtonPos.Contains(mousePoint))
                        {
                            gameState = GameState.Play;
                            currentHoverCount = 0;
                            letterSplatLength = 0;
                        }
                    }
                    break;

                case GameState.PauseGame:
                    IsMouseVisible = true; //Need a Mouse?

                    if (quitButtonPos.Contains(mousePoint) || resumeButtonPos.Contains(mousePoint))
                    {
                        if (quitButtonPos.Contains(mousePoint))
                        {
                            if (currentHoverCount > hoverTime)
                            {
                                buttonHover = ButtonHover.QuitButton;
                                if (letterSplatLength < quitString.Count())
                                {
                                    letterSplatLength++;
                                }
                                currentHoverCount = 0;
                            }
                            else
                            {
                                currentHoverCount++;
                            }
                        }
                        else
                        {
                            if (currentHoverCount > hoverTime)
                            {
                                buttonHover = ButtonHover.ResumeButton;
                                if (letterSplatLength < resumeString.Count())
                                {
                                    letterSplatLength++;
                                }
                                currentHoverCount = 0;
                            }
                            else
                            {
                                currentHoverCount++;
                            }
                        }
                    }
                    else
                    {
                        letterSplatLength = 0;
                    }

                    if (Mouse.GetState().LeftButton == ButtonState.Pressed)
                    {
                        if (quitButtonPos.Contains(mousePoint)) //Quit Current Game
                            gameState = GameState.MainMenu;
                        if (resumeButtonPos.Contains(mousePoint)) //Resume Game
                            gameState = GameState.Play;
                    }
                    if (Keyboard.GetState().IsKeyDown(Keys.Space))
                        gameState = GameState.Play;
                    break;

                case GameState.Play:
                    IsMouseVisible = false;
                     currentState = Keyboard.GetState();
                     playerTilt = PlayerTilt.None; //Rests tilt
                    //X axis movment
                     if (currentState.IsKeyDown(Keys.A)) { player1TravelH = player1TravelH  - playerSpeed; playerTilt = PlayerTilt.Left; }
                     if (currentState.IsKeyDown(Keys.D)) { player1TravelH = player1TravelH + playerSpeed; playerTilt = PlayerTilt.Right; }
                    //Wrap around X
                     if (player1Pos.X < -10) { player1Pos.X = (graphics.PreferredBackBufferWidth - 10); }
                     else if (player1Pos.X > (graphics.PreferredBackBufferWidth - 10)) { player1Pos.X = -10; }
                    //Drift
                     if (player1DriftCurrentX >= player1DriftRate)
                     {
                         if (currentState.IsKeyUp(Keys.A) && player1TravelH < 0) { player1TravelH = player1TravelH + 1; }
                         if (currentState.IsKeyUp(Keys.D)  && player1TravelH > 0) { player1TravelH = player1TravelH - 1; }
                         player1DriftCurrentX = 0; //Reseting counter
                     }
                     else
                     {
                         player1DriftCurrentX++; //Adding to counter
                     }
                    //Y axis movment
                     if (currentState.IsKeyDown(Keys.W)) { player1TravelV = player1TravelV - playerSpeed; }
                     if (currentState.IsKeyDown(Keys.S)) { player1TravelV = player1TravelV + playerSpeed; }
                    //Wrap around Y
                    //if (player1Pos.Y < -40) { player1Pos.Y = 590; }
                    // else if (player1Pos.Y > 600) { player1Pos.Y = -10; }
                    //Limiting Y movement
                    if (player1Pos.Y < 5) { player1Pos.Y = 5; }
                     else if (player1Pos.Y > 540) { player1Pos.Y = (graphics.PreferredBackBufferHeight - 60); }
                     if (player1DriftCurrentY >= player1DriftRate) //Drift
                     {
                         if (currentState.IsKeyUp(Keys.W)  && player1TravelV < 0) { player1TravelV = player1TravelV + 1; }
                         if (currentState.IsKeyUp(Keys.S)  && player1TravelV > 0) { player1TravelV = player1TravelV - 1; }
                         player1DriftCurrentY = 0; //Reseting counter
                     }
                     else
                     {
                         player1DriftCurrentY++; //Adding to counter
                     }
                    //Shooting
                     if (PlayerShotSpeedCurrent >= maxPlayerShotSpeed || oldState.IsKeyUp(Keys.Space))
                     {
                         if (currentState.IsKeyDown(Keys.Space))
                         {
                             misslePositions.Add(new Vector2(player1Pos.X + (Player1Texture.Width / 3), player1Pos.Y));
                             misslePositions.Add(new Vector2(player1Pos.X, player1Pos.Y));
                             missleRects.Add(new Rectangle((int)(player1Pos.X + (Player1Texture.Width / 3)), (int)player1Pos.Y, player1Shot.Width, player1Shot.Height));
                             missleRects.Add(new Rectangle((int)(player1Pos.X), (int)player1Pos.Y, player1Shot.Width, player1Shot.Height));
                         }
                         PlayerShotSpeedCurrent = 0;
                     }
                     else
                     {
                         PlayerShotSpeedCurrent++;
                     }
                    //Setting the speed
                    player1Pos.X = player1Pos.X + player1TravelH; //Updateing speed
                    if (player1TravelH > maxPlayerSpeed){ player1TravelH = maxPlayerSpeed;} //Speed cap
                    if (player1TravelH < -maxPlayerSpeed){ player1TravelH = -maxPlayerSpeed;}//Speed cap

                    player1Pos.Y = player1Pos.Y + player1TravelV; //Updating speed
                    if (player1TravelV > maxPlayerSpeed){ player1TravelV = maxPlayerSpeed;}//Speed cap
                    if (player1TravelV < -maxPlayerSpeed){ player1TravelV = -maxPlayerSpeed;}//Speed cap

                    //Move missiles
                     for (int i = 0; i < misslePositions.Count(); i++)
                     {
                         misslePositions[i] -= new Vector2(0, 8);
                         missleRects[i] = new Rectangle((int)misslePositions[i].X, (int)misslePositions[i].Y, player1Shot.Width, player1Shot.Height);

                         if (misslePositions[i].Y < 1)
                         {
                             misslePositions.RemoveAt(i);
                             missleRects.RemoveAt(i);
                             i--;
                         }
                    }

                    //Generate enemys
                     if (generateEnemy)
                     {
                         for (int i = 0; i < currentLevel; i++)
                         {
                             int newEnemyXPos = r.Next(20, graphics.PreferredBackBufferWidth - 20);
                             enemyPositions.Add(new Vector2(newEnemyXPos, 35));
                             enemyRects.Add(new Rectangle((newEnemyXPos), 35, enemy1Texture.Width, enemy1Texture.Height));
                             enemyMovement.Add(EnemyMovement.Left);
                         }
                         generateEnemy = false;
                     }

                     //Move enemys
                     for (int i = 0; i < enemyPositions.Count(); i++)
                     {
                         if (enemyPositions[i].X > graphics.PreferredBackBufferWidth - 20  && enemyMovement[i] == EnemyMovement.Right)
                         {
                             enemyPositions[i] += new Vector2(0,5);
                             enemyMovement[i] = EnemyMovement.Down;
                         }
                         else if (enemyPositions[i].X < 20  && enemyMovement[i] == EnemyMovement.Left)
                         {
                             enemyPositions[i] += new Vector2(0,5);
                             enemyMovement[i] = EnemyMovement.Down;
                         }
                         else if (enemyMovement[i] == EnemyMovement.Down)
                         {
                             enemyPositions[i] += new Vector2(0, 5);
                             if (enemyPositions[i].X <= 20)
                             {
                                 enemyMovement[i] = EnemyMovement.Right;
                             }
                             else
                             {
                                 enemyMovement[i] = EnemyMovement.Left;
                             }
                         }
                         if (enemyMovement[i] == EnemyMovement.Left)
                         {
                             enemyPositions[i] -= new Vector2(5, 0);
                         }
                         else if (enemyMovement[i] == EnemyMovement.Right)
                         {
                             enemyPositions[i] += new Vector2(5, 0);
                         }
                         enemyRects[i] = new Rectangle((int)enemyPositions[i].X, (int)enemyPositions[i].Y, enemy1Texture.Width, enemy1Texture.Height);
                     }
                     //Checks for collision
                     for (int i = 0; i < misslePositions.Count(); i++)
                     {
                         try
                         {
                             Rectangle badRect = enemyRects[0];
                             if (badRect.Intersects(missleRects[i]))
                             {
                                 enemyPositions.RemoveAt(0);
                                 enemyRects.RemoveAt(0);
                                 gameState = GameState.End;
                             }
                         }
                         catch
                         {
                             gameState = GameState.End;
                         }

                     }
                    break;
                case GameState.End:
                    IsMouseVisible = false;
                    if (Keyboard.GetState().IsKeyDown(Keys.Space))
                        this.Exit();
                    break;
            }
            healthCheck();
            oldState = currentState;
            base.Update(gameTime);
        }