在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
花栗鼠的来源有:
-(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?
据我所知,花栗鼠在施加"大"冲动时表现得并不好。你应该尝试和做的是在几帧内建立速度。
编辑:检查此链接http://forum.cocos2d-swift.org/t/ccphysics-applyimpulse-not-working/12151/12