2014-04-10 4 views
0

현재 여러 개의 노드로 작업하고 있는데 여러 아이들과 여러 레이어가 있으므로 복잡한 장면이므로 레이어 사이의 좌표를 변환해야합니다. 그것을 텍스트로 배치하십시오. 모든 링크도 크게 감사하겠습니다. 노드 트리로 작업 할 때좌표 평면 사이의 변환

+2

스프라이트 키트에 관한 유용한 정보가 많을 때 Apple Docs를 통해 검색하는 방법을 배우고 싶을 수 있습니다. https://developer.apple.com/library/ios/navigation/ –

+2

감사합니다. 분명히 할 것입니다 .. –

+2

문제 없습니다. D 여행을위한 도구가 하나만 있습니다. –

답변

1

은 때때로 당신이 한 좌표 공간에서 다른 좌표 공간으로 위치를 변환해야합니다, Apple Docs

에서 바로 촬영. 예를 들어 물리 시스템에서 접합을 지정할 때 접합 위치는 장면 좌표에 지정됩니다. 따라서 로컬 좌표계에 해당 점이 있으면 장면의 좌표 공간으로 변환해야합니다.

다음 방법은 노드의 위치를 ​​장면 좌표계로 변환하는 방법을 보여줍니다. 장면이 변환을 수행하도록 요청됩니다. 노드의 위치는 부모의 좌표계에서 지정되므로 코드는 node.parent를 변환 할 노드로 전달합니다. toNode : 당신은 convertPoint를 호출하여 역에서 같은 변환을 수행 할 수있는 방법

CGPoint positionInScene = [node.scene convertPoint:node.position fromNode:node.parent]; 

한 상황을 당신이 이벤트 처리를 수행 할 때 변환을 좌표 수행해야 할 곳. 마우스 및 터치 이벤트는 창 좌표에서보기 좌표로 변환되어야하며, 거기에서 장면으로 변환되어야합니다. 작성해야하는 코드를 단순화하기 위해 Sprite Kit에는 몇 가지 편리한 메소드가 추가되었습니다.

iOS에서는 UITouch 객체의 locationInNode : 및 previousLocationInNode :를 사용하여 터치 위치를 노드의 좌표계로 변환합니다.

OS X에서는 NSEvent 객체에 locationInNode : 메소드를 사용하여 마우스 이벤트를 노드의 좌표계로 변환합니다.

1

포인트를 변환해야하는 레이어에 이처럼 많은 어려움을 겪고 있다면 게임 장면 배치 방법에 대한 전략을 다시 생각해 보는 것이 좋습니다.