仅在box2d&中检测到对象顶部的碰撞cocos2dx

时间:2015-01-19 13:14:49

标签: cocos2d-x box2d collision-detection game-physics

我正在使用cocos2d-x和box2d创建一个像弹跳球这样的游戏。我有不同的对象,如矩形,方形等。我能够检测到碰撞,但我想只检测对象顶部的碰撞。究竟我想要的是,当球位于物体的顶部时,我只想跳球。

但是,当球在剩下的一侧(底部或左侧或右侧)发生碰撞时,我不想跳球。

在touchbegan中,我使用以下代码来弹跳球。因此,当它与剩下的一方发生碰撞时,它会跳跃。

if(_ball->boundingBox().intersectsRect(rect->boundingBox()))
{
b2Vec2 force = b2Vec2(0, 550);
_body->ApplyLinearImpulse(force, _body->GetPosition());
}

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

以下步骤可以解决您的问题 -

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.

答案 1 :(得分:0)