Cocos2d x 仅在box2d&;中的对象顶部检测碰撞;cocos2dx
我正在使用cocos2d-x和box2d创建一个类似弹跳球的游戏。我有不同的对象,如矩形、正方形等。。我能够检测碰撞,但我只想检测对象顶部的碰撞。我想要的是,当球在物体的顶部时,我只想跳球 但是,当球在另一侧(底部、左侧或右侧)碰撞时,我不想跳球 在TouchStart中,我使用以下代码来弹起球。所以,当它与另一侧碰撞时,每一次触碰都是跳跃Cocos2d x 仅在box2d&;中的对象顶部检测碰撞;cocos2dx,cocos2d-x,box2d,collision-detection,game-physics,Cocos2d X,Box2d,Collision Detection,Game Physics,我正在使用cocos2d-x和box2d创建一个类似弹跳球的游戏。我有不同的对象,如矩形、正方形等。。我能够检测碰撞,但我只想检测对象顶部的碰撞。我想要的是,当球在物体的顶部时,我只想跳球 但是,当球在另一侧(底部、左侧或右侧)碰撞时,我不想跳球 在TouchStart中,我使用以下代码来弹起球。所以,当它与另一侧碰撞时,每一次触碰都是跳跃 if(_ball->boundingBox().intersectsRect(rect->boundingBox())) { b2Vec2 fo
if(_ball->boundingBox().intersectsRect(rect->boundingBox()))
{
b2Vec2 force = b2Vec2(0, 550);
_body->ApplyLinearImpulse(force, _body->GetPosition());
}
有什么建议吗?以下步骤可以解决您的问题-
1) CCRect projectileRect = CCRect(float x, float y, float width, float height);
if(_ball->boundingBox().intersectsRect(projectileRect))
{
b2Vec2 force = b2Vec2(0, 550);
_body->ApplyLinearImpulse(force, _body->GetPosition());
}
2) - Make body of an object and then check their collision.
我从下面的链接中找到了问题的答案
比较两个身体的位置。也许是吧?