Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何显示";游戏结束“;在安卓系统中镜像一段固定的时间,当用户在指定的时间间隔后点击屏幕时重新启动游戏?_Java_Android - Fatal编程技术网

Java 如何显示";游戏结束“;在安卓系统中镜像一段固定的时间,当用户在指定的时间间隔后点击屏幕时重新启动游戏?

Java 如何显示";游戏结束“;在安卓系统中镜像一段固定的时间,当用户在指定的时间间隔后点击屏幕时重新启动游戏?,java,android,Java,Android,我通过观看视频教程制作了“Flappy bird”游戏的克隆。我对它进行了编程,这样当小鸟摔倒或与管子相撞时,屏幕上会出现“游戏结束”消息,当玩家点击屏幕时,游戏会重新启动 问题是,当用户未能及时点击小鸟,小鸟与管子相撞时,屏幕上的游戏立即出现,用户碰巧点击屏幕上的游戏,导致游戏重新启动 这使得用户无法查看分数。我已经尝试使用Thread.sleep()。下面是代码 (gameState == 2) { batch.draw(gameOver,Gdx.graphi

我通过观看视频教程制作了“Flappy bird”游戏的克隆。我对它进行了编程,这样当小鸟摔倒或与管子相撞时,屏幕上会出现“游戏结束”消息,当玩家点击屏幕时,游戏会重新启动

问题是,当用户未能及时点击小鸟,小鸟与管子相撞时,屏幕上的游戏立即出现,用户碰巧点击屏幕上的游戏,导致游戏重新启动

这使得用户无法查看分数。我已经尝试使用Thread.sleep()。下面是代码

    (gameState == 2)
    {
        batch.draw(gameOver,Gdx.graphics.getWidth()/2-gameOver.getWidth()/2,Gdx.graphics.getHeight()/2-gameOver.getHeight()/2);

        try
        {
            Thread.sleep(2000);
        }
        catch(InterruptedException ex)
        {
            Thread.currentThread().interrupt();
        }

        if (Gdx.input.justTouched()) {
            gameState = 1;
            startGame();
            score =0;
            scoringTube = 0;
            velocity = 0;
        }
    }

使用此代码的问题是,即使gameover映像也被延迟,而之前的问题仍然在发生,但现在有延迟。我基本上需要一种方法,以便当屏幕上的游戏出现时,JustTouch方法在一段时间内处于非活动状态。请帮助。

我真的不建议使用
线程。睡眠
;相反,您可以可以尝试使用在游戏结束后更改的布尔值,并阻止在这种情况下执行该方法。将其与例如在固定延迟后重置它的布尔值相结合,您应该可以找到问题的解决方案

计时器的用法示例:

new java.util.Timer().schedule( 
    new java.util.TimerTask() {
        @Override
        public void run() {
            //execute code here (change boolean state)
        }
    }, 
    yourDelayHere 
);