0

我正在写一个游戏,我有一个名为 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

感谢您的任何回答。

4

1 回答 1

2

我检查了您的代码并发现了问题。您正在将敌人添加到列表中,但您还必须将其添加到阶段:

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

这是来自show()方法(GameScreen.java,第 58 行)的代码,此方法是“当此屏幕成为游戏的当前屏幕时调用。”,因此如果您将敌人添加到敌人列表中,您还必须调用stage.addActor()添加他们要水平。

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

于 2013-06-02T10:47:09.293 回答