当层更改LibGdx时,Actor会消失

时间:2015-02-04 16:30:00

标签: java libgdx layer actor

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

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

这就是问题... AddActor显然在添加之前删除了actor。问题是我的角色永远不会在舞台上添加,因为他没有被画出来。

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

当角色更改行时: layers[previousRow].removeActor(this); layers[newRow].addActor(this);(不起作用,角色消失)

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

有人有解决方案吗?

非常感谢您的回答。

1 个答案:

答案 0 :(得分:0)

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

LibGDX中的

Actors有z-index,其中较高的一个在较低的一个上面绘制,您可以通过将每个Group设置为具有基于哪一行的某个z-index来使用它它是并且让玩家Actor独立并且具有与其所在的行对应的z索引。

相关问题