cocos2d-x:幻影体碰撞

时间:2014-08-10 08:08:25

标签: c++ cocos2d-x

我正在使用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;阻挡地面"在日志中)。

1 个答案:

答案 0 :(得分:0)

终于找出了问题所在。我没有使用纹理缓存。我认为cocos2dx v3.2可以自动获取精灵,他实际上可以,但不知何故精灵只是没有缓存,所以他们只是消失了。在我在场景的init()方法中预加载后,它们不再消失。