iOS cocos2D Chipmunk Body的速度无效

时间:2015-02-24 18:43:44

标签: objective-c cocos2d-iphone chipmunk spritebuilder

在cocos2d-spritebuilder 3.4中我创建了我的物理世界和我的播放器,就像许多官方例子一样。

    self.sprite.physicsBody = [CCPhysicsBody bodyWithCircleOfRadius:10 andCenter:self.anchorPoint];
    self.sprite.physicsBody.type = CCPhysicsBodyTypeDynamic;
etc...

所以,当我尝试将我的精灵向右移动时,例如

[self.sprite.physicsBody applyImpulse: CGPointMake(32,0)];

我的应用程序正在崩溃报告此内容:

Aborting due to Chipmunk error: Body's velocity is invalid.
    Failed condition: v.x == v.x && v.y == v.y
    Source:.../Source/libs/cocos2d-iphone/external/Chipmunk/src/cpBody.c:106

Chipmunk来源有:

-(void)applyImpulse:(CGPoint)impulse { _body.velocity = cpvadd(_body.velocity, cpvmult(CCP_TO_CPV(impulse), 1.0f/_body.mass));}

所以,我知道MASS默认设置为1.0f,但我想尝试手动设置这个值..):

self.sprite.physicsBody.mass = 1.0f

相同的错误,相同的结果...... 但是,如果我尝试设置:

self.sprite.physicsBody.body.mass = 1.0f

效果很好。 那么,这两个参数的区别是什么? 为什么applyImpulse只接受body.mass?

1 个答案:

答案 0 :(得分:1)

据我所知,在应用“大”冲动时,花栗鼠不会发挥出色。你应该尝试做的是在几帧内建立速度。

修改:点击此链接http://forum.cocos2d-swift.org/t/ccphysics-applyimpulse-not-working/12151/12