我试图将一个精灵附加到另一个精灵上,并使其位于父级后面。
通常情况下,这很容易实现,我之前在我的代码中也做过,但是由于某种原因,在某个实例中它不起作用。
通常的处理方法是将父级的Z索引设置为某个数字,并为其子级分配较低的Z索引。这里是一段代码,其中rect
是父级,icon
附加到它上面;两者都附加到父实体上。
然后我尝试对所有东西(矩形、父实体甚至场景本身)使用sortChildren()
方法;我知道这样做不高效,但我只是想看看是否有什么问题。但是,icon
仍然绘制在rect
上方:
for (int i=0; i<levelsList.size(); i++) {
rect = new Sprite(i*(width+padding),
0,
width,
height,
levelSelectorSquareRed,
this.getVertexBufferObjectManager());
icon = new Sprite((rect.getWidth()-innerWidth)/2f,
(rect.getHeight()-innerHeight)/2f,
innerWidth,
innerHeight,
levelIcons.get(i),
this.getVertexBufferObjectManager());
rect.setZIndex(1);
icon.setZIndex(0);
rect.attachChild(icon);
rect.sortChildren();
levelSquares.attachChild(rect);
}
levelSquares.setPosition(0, (CAMERA_HEIGHT-height)/2f);
levelSquares.sortChildren();
levelSelectorScene.attachChild(levelSquares);
levelSelectorScene.sortChildren();
从逻辑上讲,这应该是过度设计并且已经可以工作了,但实际上它不是/ 我是否漏掉了什么?
谢谢