Example #1
0
        public void Update(GameTime gameTime)
        {
            MouseState mouseState = Mouse.GetState();

            Time      = Time.Subtract(gameTime.ElapsedGameTime);
            ClickTime = ClickTime.Subtract(gameTime.ElapsedGameTime);

            if (drawLoadTextBox)
            {
                string result = loadTextBox.CheckMultilineCollisions(mouseState);
                if (!result.Equals(""))
                {
                    game.SetFilename(result);
                    game.SwitchMode();
                }
            }

            if (mouseState.LeftButton == ButtonState.Pressed)
            {
                int x = mouseState.X;
                int y = mouseState.Y;

                mouseRect = new Rectangle(x, y, 1, 1);
                MouseCollisionChecker mouseCollisionChecker = new MouseCollisionChecker(blockDict, pipeDict, enemyDict, itemDict, playerDict);

                if ((int)Time.TotalMilliseconds <= 0)
                {
                    Time = new TimeSpan(0, 0, 0, 0, 150);
                    mouseCollisionChecker.CheckMouseDisplayCollisions(options[optionsIndex], mouseRect, previousMouseRect, displayBlocks, displayPipes, displayEnemies, displayItems, displayPlayers, blocks, pipes, enemies, items, players);
                }

                mouseCollisionChecker.CheckMouseDefaultCollisions(mouseRect, previousMouseRect, blocks, pipes, enemies, items, players);

                if (mouseRect.Intersects(saveAction.GetRectangle()))
                {
                    drawSaveTextBox = true;
                }

                if (mouseRect.Intersects(loadAction.GetRectangle()))
                {
                    drawLoadTextBox = true;
                }

                previousMouseRect = mouseRect;
            }
            else if ((int)ClickTime.TotalMilliseconds <= 0)
            {
                ClickTime         = new TimeSpan(0, 0, 0, 0, 200);
                previousMouseRect = mouseRect;
            }

            if (savingLevel)
            {
                SaveLevel(saveTextBox.GetText());
            }
        }
Example #2
0
        public void CheckMouseDisplayCollisions(ActionText option, Rectangle mouseRect, Rectangle previousMouseRect, List <IBlock> displayBlocks, List <IPipe> displayPipes, List <IEnemy> displayEnemies, List <IItem> displayItems, List <IPlayer> displayPlayers, List <IBlock> blocks, List <IPipe> pipes, List <IEnemy> enemies, List <IItem> items, List <IPlayer> players)
        {
            int x = mouseRect.X;
            int y = mouseRect.Y;

            Rectangle r = new Rectangle(x, y, 1, 1);

            if (option.GetOption().Equals("Blocks"))
            {
                foreach (IBlock displayBlock in displayBlocks)
                {
                    if (mouseRect.Intersects(displayBlock.GetRectangle()))
                    {
                        EditUtility.blockCreator(displayBlock, blockDict, blocks, x, y);
                    }
                }
            }
            else if (option.GetOption().Equals("Pipes"))
            {
                foreach (IPipe displayPipe in displayPipes)
                {
                    if (mouseRect.Intersects(displayPipe.GetRectangle()))
                    {
                        EditUtility.pipeCreator(displayPipe, pipeDict, pipes, x, y);
                    }
                }
            }
            else if (option.GetOption().Equals("Enemies"))
            {
                foreach (IEnemy displayEnemy in displayEnemies)
                {
                    if (mouseRect.Intersects(displayEnemy.GetRectangle()))
                    {
                        EditUtility.enemyCreator(displayEnemy, enemyDict, enemies, x, y);
                    }
                }
            }
            else if (option.GetOption().Equals("Items"))
            {
                foreach (IItem displayItem in displayItems)
                {
                    if (mouseRect.Intersects(displayItem.GetRectangle()))
                    {
                        EditUtility.itemCreator(displayItem, itemDict, items, x, y);
                    }
                }
            }
            else if (option.GetOption().Equals("Players"))
            {
                foreach (IPlayer displayPlayer in displayPlayers)
                {
                    if (mouseRect.Intersects(displayPlayer.GetRectangle()))
                    {
                        EditUtility.playerCreator(displayPlayer, playerDict, players, displayPlayer.GetState());
                    }
                }
            }

            if (mouseRect.Intersects(option.GetRectangle()))
            {
                EditLevelDisplay.optionsIndex = (EditLevelDisplay.optionsIndex + 1) % EditLevelDisplay.options.Count();
            }
        }