我正在使用cocos2d-x和box2d创建一个像弹跳球这样的游戏。我有不同的对象,如矩形,方形等。我能够检测到碰撞,但我想只检测对象顶部的碰撞。究竟我想要的是,当球位于物体的顶部时,我只想跳球。
但是,当球在剩下的一侧(底部或左侧或右侧)发生碰撞时,我不想跳球。
在touchbegan中,我使用以下代码来弹跳球。因此,当它与剩下的一方发生碰撞时,它会跳跃。
if(_ball->boundingBox().intersectsRect(rect->boundingBox()))
{
b2Vec2 force = b2Vec2(0, 550);
_body->ApplyLinearImpulse(force, _body->GetPosition());
}
有什么建议吗?
答案 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)