在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?
答案 0 :(得分:1)
据我所知,在应用“大”冲动时,花栗鼠不会发挥出色。你应该尝试做的是在几帧内建立速度。
修改:点击此链接http://forum.cocos2d-swift.org/t/ccphysics-applyimpulse-not-working/12151/12