我再次遇到一个问题,我认为我已经尝试了所有方法但没有任何效果,因此我向您询问任何想法:)
这里是:
在我的 AndEngine 游戏中,我切换场景。首先,我有我的 gameScene,其中我的 Sprite 正在四处走动,然后我分离 Sprite 并切换到另一个场景 [使用 mEngine. setScene(otherScene)
] 在那里他再次附着。在我切换回游戏场景之前,这就像一个魅力。
我将 Sprite 与其他场景分离,切换回来[再次使用mEngine.setScene(gameScene)
]并在一段时间后(涉及到一个 TimerHandler)Sprite 再次附加到该游戏场景。 但它不可见。
以下是我能想到的一些事情,为什么这可能会失败......但到目前为止一切都已检查完毕:
- Sprite 附加到正确的场景
- 正确的位置(与他第一次的位置相同)
- 正确的 Sprite 尺寸(32x32 像素)
setVisible(true);
(无论有或没有,都不起作用)- zIndex(设置为之前的值或设置为更高的值...)
- Alpha 值,如
setAlpha(1f);
以获得完全可见性 - Sprite 有它自己的TextureAtlas (1024x1024) <-- 我知道,它很大 - 但它以前工作过:)
- 我什至尝试重新加载纹理 (
textureAtlas.load()
)
到目前为止没有任何效果 - 我仔细检查了每个设置(通过记录它,设置它并再次记录它......)
现在我完全迷失了。问题是,到目前为止一切都运行良好。 Sprite 在移动,我切换场景没有任何问题...我什至第二次切换回另一个场景, Sprite 又在那里...但不在游戏场景中 - 甚至没有一个黑色方 block 或什么都没有.
哦,我可以在 Sprite 移动时追踪他。通过摄像机跟随 Sprite ,我看到他正在做他应该做的事情 - 他只是隐形的。
还有更多想法吗?我在这里缺少什么?你们中有人经历过类似的事情吗? 不管怎样,感谢您抽出时间阅读本文!
最诚挚的问候
克里斯托夫
最佳答案
在创建引擎之前尝试调用engineOptions.getRenderOptions().disableExtensionVertexBufferObjects();
。我遇到了与此类似的问题,结果发现这个选项强制 RAM 和 GPU 保持同步,这在某种程度上(我还没有学习 OpenGL 的原理)阻止了 Sprite 消失。
关于java - Andengine Sprite在切换场景后不再可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12045462/