使用花栗鼠物理学 - 我如何知道两个碰撞物体的力

发布于 2024-08-30 06:23:25 字数 832 浏览 7 评论 0原文

如果我在花栗鼠中有两个物体(我使用的是 cocos2d-iphone),一旦我检测到它们发生碰撞,我如何知道它们彼此碰撞的力度有多大?

我希望他们的力(相对于速度)知道碰撞的损坏。

我见过关于如何做到这一点的讨论,但从未见过具体的工作代码(而且我无法让它工作,即使我认为我知道我在做什么。)为了完整起见,这里是我用来确定碰撞的速度,那么,我该如何准确地检测碰撞的力呢?

- (BOOL) handleCollisionBetweenBalls:(CollisionMoment)moment arbiter:(cpArbiter*)arb space:(cpSpace*)space {
  JjrFootprint(@"handleCollisionBetweenBalls");
    if (moment == COLLISION_BEGIN) {
    JjrLog(@"Balls Collide");
    CP_ARBITER_GET_SHAPES(arb, a, b);
    cpVect va;
    cpVect vb;
    va = a->body->v;
    vb = b->body->v;
    cpVect vNet = cpvadd(va,vb);
    cpFloat Length = cpvlength(vNet);
    // 7 = barely touching
    // 1000 = hard
    if (Length > 100) {
      [[SimpleAudioEngine sharedEngine] playEffect:@"board.wav"];
    }
  }
    return YES;
}

谢谢, 杰杰

If I have two objects in chipmunk (I'm using cocos2d-iphone), once I've detected that they collided, how can I tell how hard they are hitting each other?

I want their force (vs. the velocity) to know the damage of the collision.

I've seen discussion about how to do this, but never concrete working code (and I couldn't get it work, even though I thought I knew what I was doing.) For completeness, here is the code that I am using to determine the Velocity of the collision, so, how, precisely, would I go about detecting the Force of a collision?

- (BOOL) handleCollisionBetweenBalls:(CollisionMoment)moment arbiter:(cpArbiter*)arb space:(cpSpace*)space {
  JjrFootprint(@"handleCollisionBetweenBalls");
    if (moment == COLLISION_BEGIN) {
    JjrLog(@"Balls Collide");
    CP_ARBITER_GET_SHAPES(arb, a, b);
    cpVect va;
    cpVect vb;
    va = a->body->v;
    vb = b->body->v;
    cpVect vNet = cpvadd(va,vb);
    cpFloat Length = cpvlength(vNet);
    // 7 = barely touching
    // 1000 = hard
    if (Length > 100) {
      [[SimpleAudioEngine sharedEngine] playEffect:@"board.wav"];
    }
  }
    return YES;
}

Thanks,
JJ

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文