@Override public void update(float delta) { if (!isGameOver) { List<TouchEvent> events = stateManager.getTouchHandler().getTouchEvents(); if (!isExitDialogShowing) isExitDialogShowing = stateManager.isBackPressed(); if (isExitDialogShowing) { events = yesButton.update(events); events = noButton.update(events); if (yesButton.state == Button.ACTIVATED) { yesButton.disarm(); stateManager.setState(new MainMenuState(stateManager)); } if (noButton.state == Button.ACTIVATED) { noButton.disarm(); isExitDialogShowing = false; } } else { if (switchTurns) { if (map.getPlayer2() == map.getCurrentPlayersTurn()) events.clear(); events = switchTurnsOKButton.update(events); events.clear(); if (switchTurnsOKButton.state == Button.ACTIVATED) { switchTurnsOKButton.disarm(); switchTurns = false; checkWin = true; map.doneSwitchingTurns(); } } map.update(events); } } else { // TODO: maybe take us to a game breakdown state which records stats for the match // right now, just take us back to the main menu stateManager.setState(new MainMenuState(stateManager)); } }
@Override public void render(Graphics2D g, float delta) { map.render(g); switchTurns = map.isSwitchingTurns(); if (switchTurns) { checkWin = false; if (map.getPlayer1() == map.getCurrentPlayersTurn()) { g.drawRect(0, 0, Game.G_WIDTH, Game.G_HEIGHT, switchTurnsFill); g.drawText( map.getCurrentPlayersTurn().getGamertag() + "'s turn", Game.G_WIDTH / 2, Game.G_HEIGHT / 2, switchTurnsFont); switchTurnsOKButton.render(g); } else { g.drawRect(0, 0, Game.G_WIDTH, Game.G_HEIGHT, switchTurnsFill); g.drawText("Computer is moving", Game.G_WIDTH / 2, Game.G_HEIGHT / 2, switchTurnsFont); } } if (isExitDialogShowing) { g.drawRect(0, 0, Game.G_WIDTH, Game.G_HEIGHT, exitDialogPaint); g.drawBitmap( GameplayAssets.exitDialogIcon, Game.G_WIDTH / 2 - GameplayAssets.exitDialogIcon.getWidth() / 2, Game.G_HEIGHT / 2 - GameplayAssets.exitDialogIcon.getHeight() / 2, null); // TODO: scale for larger devices yesButton.render(g); noButton.render(g); } }