2014-04-07 9 views
1

게임에서 "확대/축소"하고 싶습니다. 그러나 부모 "세계"SKNode의 배율을 조정하면 관절이 그에 따라 크기가 조정되지 않습니다. 루트 노드 인 SKScene에 추가되어야합니다.첨부 된 SKPhysics 조인트를 사용하여 SKSpriteNode를 확대/축소 할 수 없습니다

SKScene 작품의 크기를 변경하지만 어린이가 가지고있는 HUD 그래픽은 크기가 조정됩니다.

나는 HUD를 SKView의 자식으로 만들 것을 고려해 왔지만, Apple이 추천 한 것에 반하는 것 같습니다. 또한 SKScene 전환을 사용하면 얻을 수있는 이점을 잃어 버리게되고 대신 많은 수의 ViewController를 처리하게됩니다.

SKSpriteNode의 크기를 조정하고 관절의 크기를 조정하는 방법에 대한 제안 사항이 있습니까?

답변

2

세계 노드에서 확대/축소를 시뮬레이션하는 가장 안전한 방법은 축척을 조정하는 것입니다. 그러나 주목 해 주신 바와 같이, 월드 노드를 스케일링하면 SKScene의 측면에서 모든 것을 효과적으로 이동하고 크기를 조정하기 때문에 물리 시뮬레이션이 중단됩니다. 따라서 월드 노드를 0.5로 스케일링하여 축소 아웃을 시뮬레이션하면 중력이 2 배 효과를 내고 사물이 훨씬 빨리 빠지는 것을 알 수 있습니다.

해결 방법은 물리 시뮬레이션이 완료되기 전에 항상 월드 스케일을 1.0으로 설정 한 다음 렌더링하기 전에 다시보고 싶은 것으로 바꿉니다.

는 는

부작용없이 작동 내가하고 있어요 방법은 지금처럼 -didEvaluateActions 및 -didSimulatePhysics 콜백에서 할 것입니다 :

-didEvaluateActions 
{ 
    [myWorld setScale:1.0]; // must be 1.0 before physics! 
} 

-didSimulatePhysics 
{ 
    [myWorld setScale:worldScale]; // now set correctly for rendering 
}