【问题标题】:How to apply impulse after an object collide another? [Chipmunk]一个物体碰撞另一个物体后如何施加冲力? [花栗鼠]
【发布时间】:2014-02-22 22:08:24
【问题描述】:

我正在开发一个游戏(使用 Cocos2d 3.0 和 SpriteBuilder),其中一个角色会粉碎另一个角色并获得冲动。为此,我正在尝试以下方法:

-(BOOL)ccPhysicsCollisionPreSolve:(CCPhysicsCollisionPair *)pair hero:(CCNode *)hero goal:(CCNode *)goal {
    [hero.physicsBody applyImpulse:ccp(0.0f, 9000)];
    return TRUE;
}

还有:

-(void)ccPhysicsCollisionPostSolve:(CCPhysicsCollisionPair *)pair hero:(CCNode *)hero goal:(CCNode *)goal {
    [hero.physicsBody applyImpulse:ccp(0.0f, 9000)];
}

但是当碰撞方法被调用时,角色并不总是接收到脉冲。我还尝试在“PostSolve”(How to make a dynamic body static in Cocos2d v3.0 with Chipmunk) 中包含以下内容:

[[_physicsNode space] addPostStepBlock:^{
        [hero.physicsBody applyImpulse:ccp(0.0f, 9000)];
    } key:hero];

...但我有相同的结果。你有什么建议吗?谢谢。

【问题讨论】:

    标签: cocos2d-iphone chipmunk spritebuilder


    【解决方案1】:

    在 v3 rc1 中的应用脉冲中有一个相当尴尬的复制粘贴错误。但它在 RC2 中已修复。

    【讨论】:

    • 其实我用的是RC2。我还包括了来自 Github 的最新更改:-(void)applyImpulse:(CGPoint)impulse {_body.velocity = cpvadd(_body.velocity, cpvmult(CCP_TO_CPV(impulse), 1.0f/_body.mass));}
    • 好的@slembcke 这真的很奇怪。我用 GitHub 版本替换了 CCPhysicsBody、CCPhysicsNode 和 CCPhysics+ObjectiveChipmunk,在模拟器中一切正常,但不适用于 iPhone 5。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多