SpriteKit:没有摩擦的旋转

时间:2013-10-15 15:47:19

标签: ios objective-c sprite-kit

有没有办法让精灵在与其他精灵接触后旋转但没有施加摩擦力?

如果我设置

sprite.physicsBody.friction = 0.0; 
sprite.physicsBody.allowsRotation = YES;

不会发生轮换。

3 个答案:

答案 0 :(得分:0)

如果您希望身体在与其他身体滑动接触时旋转,则需要进行一些摩擦。 (就像在现实世界的物理学中一样!)你想要摩擦引起旋转,但是一旦它旋转就会表现出无摩擦的行为吗?如果是这样,重读上一句应该给出答案的线索:你需要在身体开始旋转后改变摩擦系数。设置contact delegate可让您有机会进行此更改。它也适用于任何其他情况,你想在发生碰撞后“捏造”碰撞的结果,例如将身体的速度重新设定为预定值。

答案 1 :(得分:0)

如果您想自己管理旋转,可以检测与委托的碰撞和应用角度冲动,如下所示     [sprite.physicsBody applyAngularImpulse:0.05];

答案 2 :(得分:-1)

也许我没有明白这一点,但你似乎想要做的只是:

sprite.zRotation = 1.0;  // Note: zRotation is in radians

如果您希望轮换在一段时间内发生,请使用SKAction rotateToAngle:duration: