Пример #1
0
        public bool Update(GameTime gameTime)
        {
            m_toolbar.Update(gameTime);
            m_previousMouseState = m_currentMouseState;
            m_currentMouseState  = Mouse.GetState();

            m_previousKeyboardState = m_currentKeyboardState;
            m_currentKeyboardState  = Keyboard.GetState();

            isToolbarActive();


            if (m_currentMouseState.LeftButton == ButtonState.Pressed && currenState != States.ViewMiniMap)
            {
                if (mouseClickonToolbar())
                {
                    currenState = (States)m_toolbar.getState(m_currentMouseState.X, m_currentMouseState.Y);
                }
                else
                {
                    if (currenState == States.SelectTile && m_tileWindow.m_collisionRectangle.Intersects(new Rectangle(m_currentMouseState.X, m_currentMouseState.Y, 1, 1)))
                    {
                        m_user.setCurrentTile(m_tileWindow.getSelectedTile(new Vector2(m_currentMouseState.X, m_currentMouseState.Y)));
                    }
                    else if (currenState == States.SelectTile)
                    {
                        m_level.addTile(m_currentMouseState.X, m_currentMouseState.Y, m_user.getCurrentTile());
                    }
                    if (currenState == States.SetTile)
                    {
                        m_level.addTile(m_currentMouseState.X, m_currentMouseState.Y, m_user.getCurrentTile());
                    }

                    if (currenState == States.SetEnemy)
                    {
                        m_level.addEnemy(m_currentMouseState.X, m_currentMouseState.Y, m_user.getCurrentEnemy(), false);
                    }

                    if (currenState == States.SetEndFlag)
                    {
                        m_level.addEnemy(m_currentMouseState.X, m_currentMouseState.Y, m_user.getCurrentEnemy(), true);
                    }
                    if (currenState == States.SetCoin)
                    {
                        m_level.addCoin(m_currentMouseState.X, m_currentMouseState.Y);
                    }
                    if (currenState == States.Delete)
                    {
                        m_level.delete(m_currentMouseState.X, m_currentMouseState.Y);
                    }
                }
            }


            //Grid an oder ausschalten
            if (m_currentKeyboardState.IsKeyDown(Keys.G) && m_currentKeyboardState.IsKeyDown(Keys.G) != m_previousKeyboardState.IsKeyDown(Keys.G))
            {
                m_level.changeGridActive();
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.N) && m_currentKeyboardState.IsKeyDown(Keys.N) != m_previousKeyboardState.IsKeyDown(Keys.N))
            {
                if (currenState == States.SetTile || currenState == States.SelectTile)
                {
                    m_user.nextTile();
                }
                if (currenState == States.SetEnemy || currenState == States.SelectEnemy)
                {
                    m_user.nextEnemy();
                }
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.P) && m_currentKeyboardState.IsKeyDown(Keys.P) != m_previousKeyboardState.IsKeyDown(Keys.P))
            {
                if (currenState == States.SetTile || currenState == States.SelectTile)
                {
                    m_user.previousTile();
                }
                if (currenState == States.SetEnemy || currenState == States.SelectEnemy)
                {
                    m_user.previousEnemy();
                }
            }
            //Aktivieren und deaktivieren des Gegner setzten
            if (m_currentKeyboardState.IsKeyDown(Keys.E) && m_currentKeyboardState.IsKeyDown(Keys.E) != m_previousKeyboardState.IsKeyDown(Keys.E))
            {
                currenState = States.SetEnemy;
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.D) && m_currentKeyboardState.IsKeyDown(Keys.D) != m_previousKeyboardState.IsKeyDown(Keys.D))
            {
                currenState = States.Delete;
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.T) && m_currentKeyboardState.IsKeyDown(Keys.T) != m_previousKeyboardState.IsKeyDown(Keys.T))
            {
                currenState = States.SetTile;
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.S) && m_currentKeyboardState.IsKeyDown(Keys.S) != m_previousKeyboardState.IsKeyDown(Keys.S))
            {
                currenState = States.SelectTile;
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.F) && m_currentKeyboardState.IsKeyDown(Keys.F) != m_previousKeyboardState.IsKeyDown(Keys.F))
            {
                currenState = States.SetEndFlag;
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.C) && m_currentKeyboardState.IsKeyDown(Keys.C) != m_previousKeyboardState.IsKeyDown(Keys.C))
            {
                currenState = States.SetCoin;
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.M) && m_currentKeyboardState.IsKeyDown(Keys.M) != m_previousKeyboardState.IsKeyDown(Keys.M))
            {
                if (currenState != States.ViewMiniMap)
                {
                    currenState = States.ViewMiniMap;
                    return(true);
                }
                else
                {
                    return(false);
                }
            }

            //Den Bildschirm nach links verschieben
            if (m_currentKeyboardState.IsKeyDown(Keys.Left) && currenState != States.ViewMiniMap)
            {
                m_level.moveScreenRight();
            }

            //Bildschirm nach rechts verschieben
            if (m_currentKeyboardState.IsKeyDown(Keys.Right) && currenState != States.ViewMiniMap)
            {
                m_level.moveScreenLeft();
            }

            //Xml schreiben
            if (m_currentKeyboardState.IsKeyDown(Keys.O) && m_currentKeyboardState.IsKeyDown(Keys.O) != m_previousKeyboardState.IsKeyDown(Keys.O))
            {
                //m_screen.writeTxt();
                Save();
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.L) && m_currentKeyboardState.IsKeyDown(Keys.L) != m_previousKeyboardState.IsKeyDown(Keys.L))
            {
                Load();
            }

            if (currenState != States.ViewMiniMap)
            {
                m_level.setMiniMapActive(false);
            }

            return(false);
        }
Пример #2
0
        public void Update(GameTime gameTime)
        {
            m_previousMouseState = m_currentMouseState;
            m_currentMouseState  = Mouse.GetState();

            m_previousKeyboardState = m_currentKeyboardState;
            m_currentKeyboardState  = Keyboard.GetState();



            if (m_currentMouseState.LeftButton == ButtonState.Pressed && m_currentMouseState.LeftButton != m_previousMouseState.LeftButton)
            {
                if (!m_tileWindow.isWindowActiv() && !m_placeEnemy)
                {
                    m_level.addTile(m_currentMouseState.X, m_currentMouseState.Y, m_user.getCurrentTile());
                }

                if (m_tileWindow.m_collisionRectangle.Contains(m_currentMouseState.X, m_currentMouseState.Y) && !m_placeEnemy)
                {
                    m_user.setCurrentTile(m_tileWindow.getSelectedTile(new Vector2(m_currentMouseState.X, m_currentMouseState.Y)));
                }

                if (m_placeEnemy)
                {
                    m_level.addEnemy(m_currentMouseState.X, m_currentMouseState.Y, m_user.getCurrentEnemy());
                }
            }


            //Grid an oder ausschalten
            if (m_currentKeyboardState.IsKeyDown(Keys.G) && m_currentKeyboardState.IsKeyDown(Keys.G) != m_previousKeyboardState.IsKeyDown(Keys.G))
            {
                m_level.changeGridActive();
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.N) && m_currentKeyboardState.IsKeyDown(Keys.N) != m_previousKeyboardState.IsKeyDown(Keys.N))
            {
                m_user.nextTile();
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.P) && m_currentKeyboardState.IsKeyDown(Keys.P) != m_previousKeyboardState.IsKeyDown(Keys.P))
            {
                m_user.previousTile();
            }
            //Aktivieren und deaktivieren des Gegner setzten
            if (m_currentKeyboardState.IsKeyDown(Keys.E) && m_currentKeyboardState.IsKeyDown(Keys.E) != m_previousKeyboardState.IsKeyDown(Keys.E))
            {
                if (m_placeEnemy)
                {
                    m_placeEnemy = false;
                }
                else
                {
                    m_placeEnemy = true;
                    m_tileWindow.setActive(false);
                }
            }


            //Nächstes Tile auswählen
            if (m_currentMouseState.RightButton == ButtonState.Pressed && m_currentMouseState.RightButton != m_previousMouseState.RightButton)
            {
                if (m_tileWindow.isWindowActiv())
                {
                    m_tileWindow.setActive(false);
                }
                else
                {
                    m_tileWindow.setActive(true);
                }
            }


            //Den Bildschirm nach links verschieben
            if (m_currentKeyboardState.IsKeyDown(Keys.Left) && m_currentKeyboardState.IsKeyDown(Keys.Left) != m_previousKeyboardState.IsKeyDown(Keys.Left))
            {
                m_level.moveScreenLeft();
            }

            //Bildschirm nach rechts verschieben
            if (m_currentKeyboardState.IsKeyDown(Keys.Right) && m_currentKeyboardState.IsKeyDown(Keys.Right) != m_previousKeyboardState.IsKeyDown(Keys.Right))
            {
                m_level.moveScreenRight();
            }

            //Xml schreiben
            if (m_currentKeyboardState.IsKeyDown(Keys.O) && m_currentKeyboardState.IsKeyDown(Keys.O) != m_previousKeyboardState.IsKeyDown(Keys.O))
            {
                //m_screen.writeTxt();
                Save();
            }

            if (m_currentKeyboardState.IsKeyDown(Keys.L) && m_currentKeyboardState.IsKeyDown(Keys.L) != m_previousKeyboardState.IsKeyDown(Keys.L))
            {
                Load();
            }
        }