当窗口不再处于焦点时,Java / Libgdx计时器停止

时间:2016-07-02 19:54:35

标签: java multithreading timer libgdx

我有以下的iusse。我的计时器工作正常,直到我的游戏窗口失焦,就在它停止后,只有当它再次聚焦时才恢复。虽然它不是焦点,但它可以在不调用计时器的情况下完成所有操作。

继承我的计时器方法:

@SuppressWarnings("static-access")
public void update(){

    if(game.hostServer || !game.hostServer){

        packetUpdate.scheduleTask(new Task() {

            @Override
            public void run() {

                gameScreen.playerEntity.updateNetworkPositions();

                gameScreen.playerEntity.updateNetworkStates();

                if(game.hostServer && gameScreen.launcher.network.client.isConnected()){

                    for(int i = 0; i < gameScreen.enemyEntityList.size(); i++){

                        EnemyEntity entity = gameScreen.enemyEntityList.get(i);

                        entity.listId = i;

                        if(game.hostServer){

                            System.err.println("Sending packets");

                        }

                        entity.updateNetworkPositions();

                        entity.updateNetworkStates();

                    }

                }

            }

        }, 0.05f);

    }               

}

这个更新方法在我的渲染线程中调用:

@SuppressWarnings("static-access")
@Override
public void render(final float delta) {

        lightManager.doStep(delta); 

        GdxAI.getTimepiece().update(delta);

        Gdx.gl.glClearColor(0, 0, 0, 0);
        Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

        launcher.update();      

}

我已经找到了答案,但没有发现任何答案。在reddit上有一个人有同样的问题,但他没有得到答案。有人可以帮我解决这个问题吗? :)

0 个答案:

没有答案