我正在使用cocos2d-x v3.2开发游戏,其中我有块从屏幕顶部掉下来。当他们到达地面时 - 他们会破碎。 使用schedule()调用generateBlock方法不断创建新块。 使用以下代码创建新块:
newBlock = new Blocks(newPoint, false);
newBlock->drawBlock(this, BLOCK_ZORDER);
并使用此代码删除:
if(BLOCKS_BITMASK == contact.getShapeA()->getBody()->getCollisionBitmask())
{
contact.getShapeA()->getBody()->removeFromWorld();
layer->removeChild(contact.getShapeA()->getBody()->getNode());
}
else
{
contact.getShapeB()->getBody()->removeFromWorld();
layer->removeChild(contact.getShapeB()->getBody()->getNode());
}
一切正常,但有时块不会产生(它既不出现在我跟踪块生成也不在屏幕上的CCLog()中),尽管生成时间已经到来。并且那个不存在的幻影体与地面相撞(我看到这是由于生成的粒子和#34;阻挡地面"在日志中)。
答案 0 :(得分:0)
终于找出了问题所在。我没有使用纹理缓存。我认为cocos2dx v3.2可以自动获取精灵,他实际上可以,但不知何故精灵只是没有缓存,所以他们只是消失了。在我在场景的init()方法中预加载后,它们不再消失。