我正在尝试将精灵附加到另一个精灵并将其附加在其父精神之后。
这通常很容易,而且我之前在我的代码中只有一个 - 但由于某种原因,在一次实例中,它不起作用。
该过程通常是将父级的Z索引设置为某个数字,并为其子级分配较低的Z索引。以下代码中rect
是父代,icon
附加到代码中;两者都附加到父实体。
然后我尝试了所有的sortChildren()
方法(rect,父实体,甚至是场景本身);我知道这不是很有效,但我只是想知道是否有东西可以抓住。它没有。 icon
仍在rect
上绘制{/ 1}}
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();
从逻辑上讲,这应该是矫枉过正并让它运作,但它不是/ 我错过了什么吗?
由于
答案 0 :(得分:17)
SO
有一些神奇的东西。我可以在问题上遇到困难,最后放弃并在这个网站上提问。几分钟内问题就可以轻松解决。
解决方案:
没有。 Children
中的AndEngine GLES2
无法在parents
后面显示child
。但!您可以将两者都附加到实体,为它们添加Z索引,然后对实体进行排序,而不是将levelSquares.attachChild(rect);
levelSquares.attachChild(icon);
rect.setZIndex(1);
icon.setZIndex(0);
levelSquares.sortChildren();
精灵附加到父精灵。
{{1}}
答案 1 :(得分:5)
如果你正在使用AndEngine GLES2,那很简单:在附加孩子之后,只需将其Z-Index设置为负值。