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); }
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(); } }