为什么libGDX Timer无法使用我的方法?

时间:2013-06-02 06:48:55

标签: java libgdx

我正在写一个游戏,我有一个名为generateWave()的函数。它会产生敌人,并且当它自己被调用时它可以完美地运行,但是当它在延迟之后被调用时使用:

Timer.schedule(new Task(){
    @Override
    public void run() {
        generateWave(5);
    }
}, 1, 5);

所有内容都被调用,但屏幕上没有任何内容呈现。我设置了一些println来检查它设法获得的代码有多远,并且在调用之后一切都完成了它的工作,但是我通常从调用generateWave()获得的结果无处可寻。尽管创造并放置了精灵,但没有精灵渲染。

这是包含代码的文件:https://github.com/Vynlar/HorseInvaders/blob/master/HorseInvaders/src/me/vynlar/HorseInvaders/world/World.java

感谢您的回答。

1 个答案:

答案 0 :(得分:2)

我检查了你的代码,发现了问题。您要将敌人添加到列表中,但您还必须将其添加到舞台:

    for(Enemy enemy : world.getEnemies())
    {
        stage.addActor(enemy);
    }

这是来自show()方法的代码(GameScreen.java,第58行),当此屏幕成为游戏的当前屏幕时,此方法被调用。",所以如果你将你的敌人添加到敌人列表中,你必须都呼叫stage.addActor()将他们添加到等级。

PS。对不起我的英语不好。我希望能帮助你。 :)