iOS cocos2D Chipmunk Body 的速度无效
iOS cocos2D Chipmunk Body's velocity is invalid
在 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?
据我所知,花栗鼠在施加 "big" 冲动时表现不佳。您应该尝试做的是在几帧上建立速度。
编辑:检查此 link http://forum.cocos2d-swift.org/t/ccphysics-applyimpulse-not-working/12151/12
在 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?
据我所知,花栗鼠在施加 "big" 冲动时表现不佳。您应该尝试做的是在几帧上建立速度。
编辑:检查此 link http://forum.cocos2d-swift.org/t/ccphysics-applyimpulse-not-working/12151/12