AndEngine-在其父母身后绘制精灵的孩子

Lon*_*uck 5 android z-index sprite andengine

我正在尝试将精灵附加到另一个精灵并将其附加到其父级后面.

这通常很容易,我之前在我的代码中只有一个 - 但由于某种原因,在一次实例中,它不起作用.

该过程通常是将父级的Z索引设置为某个数字,并为其子级分配较低的Z索引.这是代码,其中rect是父级,icon并附加到它; 两者都附加到父实体.然后我尝试了sortChildren()所有方法(rect,父实体,甚至是场景本身); 我知道这不是很有效,但我只是想知道是否有东西可以抓住.它没有.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();
Run Code Online (Sandbox Code Playgroud)

从逻辑上讲,这应该是矫枉过正并让它运作,但它不是/我错过了什么?

谢谢

Lon*_*uck 17

有一些神奇的东西SO.我可以在问题上遇到困难,最后放弃并在这个网站上提问.几分钟内,问题就轻松解决了.

解决方案:

ChildrenAndEngine GLES2不能将其背后的绘制parents.但!child您可以将两者都附加到实体,为它们添加Z索引,然后对实体进行排序,而不是将精灵附加到父精灵.

levelSquares.attachChild(rect);
levelSquares.attachChild(icon);
rect.setZIndex(1);
icon.setZIndex(0);
levelSquares.sortChildren();
Run Code Online (Sandbox Code Playgroud)

  • 我同意这个神奇的事情......我认为这与以下事实有关:为了提出问题,你需要清楚地说出你所遇到的问题,以及你为解决问题所做的工作.有时这有助于触发其他形式的思考.祝你好运! (3认同)

Rod*_*ias 5

如果您使用的是AndEngine GLES2,则非常简单:在附加子项后,只需将其Z-Index设置为负值即可.