2014-01-20 2 views
4

저는 스프라이트 노드를 만들고, 위치를 설정하고 앵커 포인트를 (0, .5)로 변경 한 다음 phyicsbody를 만듭니다.physicsBody가 spriteNode와 정렬되지 않았습니다.

물리학 자들은 내 앵커 포인트가 여전히 (.5, .5), 바보 같이 있다고 생각합니다.

같은 문제가 여기에 참조

하지만, 미해결 : Physicsbody doesn't adhere to node's anchor point

순서 I가 올바른지에서 일을하고있다가, 그건 그냥 내 physicsbody는 고집이다.

답변

4

anchorPoint는 노드의 텍스처가 노드의 위치를 ​​기준으로 그려지는 위치를 결정합니다. 순수한 시각적 속성 (텍스처 오프셋)이기 때문에 단순히 물리학 체에 영향을주지 않습니다.

물리 기반 노드의 경우 앵커 포인트가 기본값에서 변경되면 실제로는 역효과가 발생합니다. 이는 앵커 포인트가 텍스처가 회전 할 지점을 변경하기 때문입니다. 그리고 물리 물리 체는 대개 노드의 회전을 변경합니다.

물리 본문의 모양의 정점을 이동하여 수정 된 anchorPoint와 일치 시키더라도 본문이 회전을 시작하자마자 물리 모양이 이미지와 정렬되지 않습니다. 그리고 그것은 이상하게 행동하는 것처럼 보일 것입니다.

anchorPoint를 사용하여 달성하고자하는 모든 것을 플러스하면 노드 계층 구조를 사용하여 더욱 유연하게 달성 할 수 있습니다. 피직스 노드로 SKNode를 사용하고 물리가 아닌 스프라이트 노드를 그 노드의 자식으로 추가하고 스프라이트의 anchorPoint를 변경하여 이미지를 오프셋하려는 방식으로 오프셋합니다.

두 개의 노드 (물리 본문을 나타내는 하나의 보이지 않음)와 본문의 비주얼을 나타내는 하나 이상의 (또는 그 이상의) 스프라이트는 있지만 바디의 중앙 위치에 반드시 묶여 있지는 않습니다.

+0

피직스 바디의 왼쪽에서 회전하도록 제안 하시겠습니까? – maxhud

+0

물리 객체처럼 동작 시키시겠습니까? 아니면 수동으로 애니메이션을 적용 하시겠습니까? 동시에 어렵고 오류가 발생하기 쉽습니다. 현재 스프라이트 키트는 몸의 무게 분포를 변경하는 것을 지원하지 않습니다. 신체의 무게 분포는 원하는 것을 달성하려고 시도하는 것일 수 있습니다 ... 어쩌면. 아무리해도 시체를 다른 몸체로 회전 시키려면 관절을 사용해야합니다. – LearnCocos2D

+0

몸체가 중심이 아닌 왼쪽면을 중심으로 회전하도록하고 싶습니다. 그것은 그렇게 복잡해서는 안됩니다. 체중 분배에 대해 아무 것도 할 필요가 없습니다. 물리 체체가있는 스프라이트 노드를 만들고 싶습니다. zRotation을 변경할 수 있고 중심점보다는 왼쪽면을 중심으로 회전 할 것입니다. – maxhud

관련 문제