iphone - 创建炸弹 - Cocos2d/Box2d

标签 iphone cocos2d-iphone

我仍在尝试弄清楚如何创建炸弹模拟。我有一个球和一个炸弹,当球与炸弹碰撞时,炸弹会爆炸并迫使球朝球被扔进去的方向移动。

现在我正在使用ApplyLinearImpulse,但我被迫选择一个特定的方向。我只需要迫使球朝它被扔进去的方向移动。

例如,

球被扔到炸弹的左上方,然后球被迫向上并向左移动。 将球扔到炸弹的左下侧,然后将球向下推向左侧。

基本上,它只需要是一颗炸弹即可。谁能告诉我该怎么做?我是 Box2d 的新手。

这就是我现在正在使用的。

-(void) explodeBomb
{
    b2Vec2 force = b2Vec2(-20,20); // give the direction for the force.

    _ballBody->ApplyLinearImpulse(force, _ballBody->GetWorldCenter());
}

最佳答案

你需要一些数学知识。假设主体和炸弹的位置分别为 bodyPositionbombPosition:

double diffX = bodyPosition.x - bombPosition.x;
double diffY = bodyPosition.y - bombPosition.y;
double distance = sqrt(diffX * diffX + diffY * diffY);
double normalizedX = diffX / distance;
double normalizedY = diffY / distance;

现在假设您要施加 20 单位的力:

float factor = 20.0f;
b2Vec2 force(normalizedX * factor, normalizedY * factor);
_ballBody->ApplyLinearImpulse(force, _ballBody->GetWorldCenter());

关于iphone - 创建炸弹 - Cocos2d/Box2d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6905880/

相关文章:

iphone - 为什么我无法在 iOS 应用程序的 bundle 中查看 PNG 图像?

ios - 使用cocos2d定位

ios - -[CCSprite draw] 530 中的 OpenGL 错误 0x0502

cocos2d-iphone - COCOS2D粒子效果碰撞

iphone - Cocos2D随机 Sprite 运动

iphone - 在 cocos2d 上使 iOS 应用程序小于 50MB

ios - 缺少 NFCTagReaderSession 所需的权利

ios - 如何在另一个 ViewController 中将带有 Xib 的 ViewController 显示为 subview

iphone - sibling 的UIViewAutoresizing?

iphone - 与 iPhone SDK 相比,Mono Touch 有多好?