@Override public void render(float delta) { Gdx.gl.glClearColor(1F, 1F, 1F, 1F); Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); batch.begin(); batch.draw(Assets.background, 0, 0, W, H); batch.end(); switch (state) { case PAUSE: batch.begin(); batch.draw( Assets.avoid, (W / 2) - (Assets.avoid.getWidth() / 2), H - (augH + Assets.avoid.getHeight())); batch.draw(Assets.touch, (W / 2) - (Assets.touch.getWidth() / 2), augH); batch.draw(Assets.player, player.getPosition().x, player.getPosition().y); batch.end(); Timer.schedule( new Task() { @Override public void run() { touch(); } }, 0.3f); break; case RUN: if (playing) { if (gameover == false) { time += Gdx.graphics.getDeltaTime(); meteorIterator = meteor.iterator(); while (meteorIterator.hasNext()) { Meteor cur = meteorIterator.next(); cur.update(); batch.begin(); batch.draw( Assets.meteor, cur.getPosition().x, cur.getPosition().y, Assets.meteor.getWidth() / 2f, Assets.meteor.getHeight() / 2f, Assets.meteor.getWidth(), Assets.meteor.getHeight(), 1, 1, cur.getMetSp().getRotation(), 0, 0, Assets.meteor.getWidth(), Assets.meteor.getHeight(), false, false); batch.end(); cur.getMetSp().rotate(8f); if (Intersector.overlaps(cur.getmBounds(), player.getpBounds())) { gameover = true; } } enemyIterator = enemy.iterator(); enemyIterator = enemy.iterator(); while (enemyIterator.hasNext()) { Enemy cur = enemyIterator.next(); cur.update(); batch.begin(); batch.draw( Assets.enemy1, cur.getPosition().x, cur.getPosition().y, scX / 2f, scY / 2f, scX, scY, 1, 1, cur.getRotate().getRotation()); batch.end(); cur.getRotate().rotate(-5f); if (Intersector.overlaps(cur.getBounds(), player.getpBounds())) { gameover = true; } } batch.begin(); if (time > 40) { e2.update(); batch.draw(Assets.enemy2, e2.getPosition().x, e2.getPosition().y); if (Intersector.overlaps(player.getpBounds(), e2.getBounds())) { gameover = true; } } if (Assets.H && !Assets.N) { if (time > 80) { e4.update(); batch.draw(Assets.enemy2, e4.getPosition().x, e4.getPosition().y); if (Intersector.overlaps(player.getpBounds(), e2.getBounds())) { gameover = true; } } } batch.draw(Assets.player, player.getPosition().x, player.getPosition().y); batch.end(); } else { if (Assets.N) { Assets.setBestTime(time, true); } else { Assets.setBestTime(time, false); } Assets.setCurrentTime(time); exp.currentFrame = exp.anime.getKeyFrame(delta, false); batch.begin(); batch.draw(exp.currentFrame, player.getPosition().x, player.getPosition().y); batch.end(); if (!Assets.boom.isPlaying()) { Assets.boom.play(); } Timer.schedule( new Task() { @Override public void run() { playing = false; } }, 0.7f); } } else { game.setScreen(new Replay(game)); } if (gameover == false) { player.movement(); player.update(); } else if (gameover) { Assets.bgm.stop(); } break; } }