如何在运行时在引擎场景中更改Sprite层?如何更改引擎中的Sprite层
回答
这取决于您通过更改图层了解的内容。如果您指的是实体的z索引,那么您可以使用entity.setZIndex(int),并且您需要在精灵的父级上手动调用parent.sortChildren()。
如果通过更改图层,你意味着从父母分离并附加到另一个父母,那么这是另一个问题。
我最近一直在处理这个问题。使用sortChidren和setZOrder维护精灵zorder是令人沮丧的,特别是如果你有复杂的图层组合(场景实体)。
我发现将此重写添加到您拥有的每个实体派生图层。
@Override
protected void onDrawChildren(GL10 pGL, Camera pCamera) {
getParent().sortChildren();
super.onDrawChildren(pGL, pCamera);
}
这可让您设置Z顺序sprite.setZOrder(为了++)和你保证你的实体是一个在您设置至少精灵顺序绘制。
我猜这增加了很多开销,但我没有注意到我的星系王牌。 (还未尝试分析它)
问题是,当您调用setZOrder(...)时,需要在添加到父级的每个后续精灵/实体附加后调用sortChildren,否则任何更高级的zorder实体都会被拖动由于setZOrder实际上没有设置3d对象的z轴,所以新添加的实体。只有对象被绘制的顺序。 (无论实体中的mZIndex值如何,所有andengine对象都具有相同的z轴值) 因此,只要将新实体添加到父实体,就必须对子级进行排序。
这是我到目前为止。请纠正我,如果我错了或有更好的解决方案。
但现在我认为重写'attachChild()'并且在那里做会更有效率。 – Justin
- 1. 如何更改金字塔中的模板引擎?
- 2. LibGdx - 如何设置Sprite的图层
- 3. 更改sprite的一批pyglet
- 4. 夹层搜索引擎
- 5. 带有外键的MySQL更改引擎
- 6. 意外的MySQL表引擎更改?
- 7. 规则引擎从经典更改为决策规则引擎
- 8. Z层索引修改层更改(jQuery插件修改)?
- 9. 使用sprite-sheet中的图像更改sprite纹理
- 10. 更改sprite在LIBGDX中的矩形
- 11. 虚幻引擎中的2D Sprite缩放4.13.2
- 12. 如何更改MySQL上的存储引擎类型?
- 13. 如何更改UMG(虚幻引擎)上定位点的方向?
- 14. 如何处理意外的MySQL数据库引擎更改?
- 15. 如何更改cocos2dx C++ v3.10中的Sprite纹理?
- 16. Objective-C更改Sprite Sheet - Sparrow
- 17. MYSQL批量更改表引擎
- 18. MySQL更改引擎千万行表
- 19. 将mysql默认引擎更改为innodb
- 20. 将Joomla表引擎更改为InnoDB
- 21. 谷歌计算引擎更改区域
- 22. 如何修改查询引擎?
- 23. MySQL Workbench EER Diagramm - 如何更改存储引擎?
- 24. 如何更改在rails3中渲染部分插件/引擎的搜索顺序?
- 25. 更改Sprite-Kit游戏的FPS?
- 26. 如何正确更改sprite上的z-index?
- 27. 在Mysql中更改表的存储引擎
- 28. 更改Google应用引擎中的属性名称
- 29. 是否可以更改TFS 2008中的合并引擎?
- 30. 更改多个客户端中的rails引擎方法名称
我有同样的问题,任何解决方案? – NemoPhobia
您是否尝试过从图层中分离精灵并将其附加到您希望精灵所在的图层? – TheMadCapLaughs27
是的,我已经尝试过,但changine这样会引起紧张感。 – stackuser