@Override public void act(float delta) { int acts = logic.advance2(delta); super.act(delta); boolean isGameOver = logic.isGameOver(); if (isGameOver && !gameOverFired) { if (logic.isGameLost()) { gameOverFired = true; mGame.gameLost(); } else { if (timeToFireWon > 0) timeToFireWon -= delta; else { gameOverFired = true; mGame.gameWon(); } } } else if (!isGameOver && gameOverFired) { gameOverFired = false; timeToFireWon = TIME_TO_WAIT_FOR_WON; } sounds.act(delta, acts); // bangs.act(delta); snappers.act(delta); if (isHinting) hint.act(delta); if (isTutorialAvailable && !isHinting && !areSnappersTouched() && (System.currentTimeMillis() - logic.startTime) > WAIT_FOR_TUTORIAL) showHints(true); }