2013-10-15 9 views
0

다른 스프라이트와 접촉 한 후 스프라이트를 회전 시키지만 마찰력을 적용하지 않는 방법이 있습니까? 제가SpriteKit : 마찰이없는 회전

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

설정하면

에는 회전이 발생하지 않는다.

답변

-1

아마 나는 점을받지 못했습니다하지만 당신이 원하는 것 정말 그냥 :

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

을 아니면 회전이 일정 기간 동안 발생 할 경우 SKAction rotateToAngle:duration:를 사용합니다.

+0

마찰로 인해 회전이 발생하지만 스프라이트 속도에는 영향을 미치지 않습니다. –

+0

흠 나는 그것이 가능하다고 생각하지 않는다. – LearnCocos2D

0

다른 몸체와 미끄럼 접촉시 몸체를 회전 시키려면 약간의 마찰이 필요합니다. (실제 세계 물리에서와 마찬가지입니다!) 마찰로 인해 회전이 발생하지만 회전하면 마찰없는 동작을 나타낼까요? 그렇다면 이전 문장을 다시 읽어야 답변에 대한 단서를 얻을 수 있습니다. 신체가 회전하기 시작한 후에 마찰 계수를 변경해야합니다. contact delegate을 설정하면 이러한 변경을 할 수 있습니다. 또한 신체의 속도를 미리 결정한 값으로 다시 설정하는 것과 같은 충돌이 발생한 후에 충돌 결과를 "퍼지"하고자하는 경우에 유용합니다.

0

회전을 직접 관리하려는 경우 위임자와의 충돌을 감지하고 [sprite.physicsBody applyAngularImpulse : 0.05]와 같은 각도 자극을 적용 할 수 있습니다.