确保每次碰撞仅触发一次碰撞检测
我正在尝试不使用 Box2d 进行碰撞检测, 所以我使用了内置函数 CCRectIntersectsRect() 当我减少计数时使用此函数,它会在一次碰撞中减少为负值。 (当球接触英雄时以及当球穿过英雄时。)
我想要的只是以某种方式安排它,以便 count-- 只被调用一次。
完整源代码如何使用box2d用于 cocos2d-x 中的碰撞检测
CCRect bom= ball->boundingBox();
CCRect gon= hero->boundingBox();
if(CCRect::CCRectIntersectsRect(bom,gon))
{
count--;
}
I am trying collision detection without using Box2d,
so i used a inbuilt function CCRectIntersectsRect()
using this function when i decrement the count it gets reduced to negative values in a single collision. (when the ball touches hero and when the ball crosses hero.)
All i want is to schedule it in someway so that the count-- gets called once only.
For complete source code how to use box2d for collision detection in cocos2d-x
CCRect bom= ball->boundingBox();
CCRect gon= hero->boundingBox();
if(CCRect::CCRectIntersectsRect(bom,gon))
{
count--;
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建一个名为
colliding
的持久 bool 变量,并按如下方式使用它:以下是您在下面的注释中提供的代码的修复程序:
Create a persistent bool variable called
colliding
, and use it like this:Here's the fix for the code you provided in the comments below:
将计数初始化为 1
if(CCRect::CCRectIntersectsRect(bom,gon) && 计数 > 0)
{
数数 - ;
}
initialize count with 1
if(CCRect::CCRectIntersectsRect(bom,gon) && count > 0)
{
count--;
}