在libGDX中设置延迟

ano*_*mos 5 java android libgdx

我现在尝试以三种不同的方式在libGDX中设置延迟。

首先,我尝试使用Timer,但是如果我重新启动活动,计时器将不会再次启动。使用时这是一个已知问题GestureDetectorhttps : //github.com/libgdx/libgdx/issues/2274

然后,我尝试Gdx.graphics.getDeltaTime在我的render方法中使用设置计时器,但这对我不起作用,因为我将其设置为非连续渲染。答案2中所述在libgdx游戏中设置了延迟

最终,我尝试使用while循环System.getCurrentTimeMilliseconds,但在while循环循环时,这阻止了应用程序识别抽头。

我也听说过DelayAction,但是如何将其实现到代码中呢?https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/scenes/scene2d/actions/DelayAction.html

还有其他设置延迟的方法吗?一个如何实现DelayAction?或者,如何解决TimerlibGDX中的错误?

ano*_*mos 2

受到Barodapride评论的启发,我找到了一个解决方案,我创建一个新线程,并将while循环放在这里。该代码将等待 1000 毫秒,然后foo()在主线程上运行。

new Thread(new Runnable() {
            @Override
            public void run() {
                long time = System.currentTimeMillis();
                while (System.currentTimeMillis() < time + 1000){}
                Gdx.app.postRunnable(new Runnable() {
                    @Override
                    public void run() {
                        foo();
                    }
                });
            }
        }).start();
Run Code Online (Sandbox Code Playgroud)