Cocos2d-x:幻体碰撞
cocos2d-x: phantom bodies collision
我正在开发一款使用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()中,也没有出现在屏幕上),尽管生成的时间已经到了。并且不存在的幻影体与地面碰撞(我看到由于生成的粒子和"块击中地面"在日志中)。
终于查出问题所在了。我没有使用纹理缓存。我认为cocos2dx v3.2可以自动缓存精灵,他确实可以,但不知何故精灵只是没有缓存,所以他们只是消失了。当我在场景的init()方法中预加载它们后,它们不再消失。
相关文章:
- 落砂模拟碰撞检测C++和SFML
- SFML 碰撞永远不会在我的系统中注册
- 在均匀网格中处理碰撞
- 构造对象 c++ (cocos2d-x) 时的区别
- 平台游戏 - 下车时避免与平台碰撞
- AABB 碰撞使实际精灵的大小翻倍
- 具有随机值的多个对象及其碰撞的 SFML
- SFML 中的重力和碰撞检测
- 我的碰撞检测中的奇怪行为
- Box2D Contact Listener碰撞仅间歇性工作
- 如何为球形物体和三角形地形提供高效的碰撞检测和响应
- 同时与两个片段着色器发生碰撞
- 如何避免 Cocos2d-x 3.15.1 中的 MenuItemImage 和 MenuItemSprite 之间的冲突
- 2D 障碍物碰撞
- 可破坏的网格块会导致奇怪的碰撞
- ptrdiff_t typedef 碰撞 - 谷歌测试和英特尔蟒蛇
- Cocos2D-X:从内存中读取 MP3 数据
- Cocos2d-x TiledMap,在调用 getLayer() 获取碰撞层时返回一个 nullptr?
- Cocos2d-x:幻体碰撞
- cocos2d-x中的碰撞检测