【问题标题】:Actors disappear when layer changement LibGdx层变化时演员消失 LibGdx
【发布时间】:2015-02-04 16:29:59
【问题描述】:

我的游戏非常先进,但这些天我遇到了一个我无法解决的问题...... 我有一个迷宫和一个角色。对于迷宫的每一行,我为舞台演员定义了一个组,并将该行的每个演员(例如墙壁)放入这个组。 之后,我以数组(Group[] layers) 结束,其大小等于迷宫中的行数,并将每个组放在我的舞台上。 到此为止,它完美地工作,我的墙被画了,我的角色也被画了,他的头出现在第一排墙的后面,由于层。

但是当我的角色换行时,我想改变他的“层”,所以它在舞台中的顺序。 我的想法是: layers[previousRowOfTheCharacter].removeActor(this); layers[newRowOfTheCharacter].addActor(this);

这就是问题所在...AddActor 显然在添加之前删除了该演员。问题是我的角色从来没有被添加到舞台上,因为他没有被画出来。

快速总结: static Group[] layers = Group[numberOfRows]; Stage stage = new Stage(); 添加要绘制到图层的所有演员 layers[row].addActor(); (works) 通过添加阶段中的所有组 stage.addActor(group); (works)

当一个字符改变行时: layers[previousRow].removeActor(this); layers[newRow].addActor(this);(不起作用,字符消失)

我不能使用 stage.addActor,因为它不允许我订购演员。我通过比较器读到它是可能的,但它似乎仍然是一团糟。我试过了,我现在的方法对我来说似乎更清晰。

有人对此有解决方案吗?

非常感谢您的回答。

【问题讨论】:

    标签: java libgdx layer actor


    【解决方案1】:

    我个人不明白为什么您的设置不起作用,但我建议的解决方法是改用 Z-index 的演员。

    Actors 在 LibGDX 中具有 z-index,其中较高的索引绘制在较低的索引之上,您可以通过将每个 Group 设置为具有基于它所在行的特定 z-index 来使用它并且具有播放器Actor 是单独的,并且有一个对应于它所在行的 z-index。

    【讨论】:

    • 根据我的阅读,我了解到 z-index 并没有真正起作用,因为舞台似乎重置了 z-index...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-06
    • 1970-01-01
    • 2014-12-24
    相关资源
    最近更新 更多