2011-11-06 5 views
1

Cocos2D에서 앵커 포인트 (0,1)로 내 CCSprites를 만들고 있는데, 이는 UIKit에서와 비슷합니다. 어쨌든, Box2D에서 앵커 포인트를 변경하려고합니다. 가능한가요? 그렇다면 앵커 포인트 (0,1)로 어떻게 할 수 있습니까?Box2D 앵커 포인트를 변경 하시겠습니까?

감사합니다.

답변

4

Box2D 본문에는 고정 점이 없습니다.

anchorPoint는 노드의 위치를 ​​기준으로 한 노드 텍스처의 오프셋입니다. Box2D 바디에는 텍스처가 없으므로 앵커 포인트가 없습니다.

일반적으로 앵커 포인트를 기본 0.5,0.5 위치에서 변경하면 더 많은 것을 어렵게 만듭니다. 예를 들어, 당신이이 질문을하게 만드는 이슈와 같습니다.

+0

흠 나는이 링크로 실행했습니다. http://www.box2d.org/forum/viewtopic.php?f=380&t=3612&p=17877#p17877 그리고 그들은 가능하다고 말합니다. 링크를 보면, 아직도 가능하다고 생각하십니까? –

+0

예, 도형을 오프셋 할 수는 있지만 간단한 속성은 없으므로이 오프셋을 모든 Box2D 본문에 추가하여 해당 스프라이트의 anchorPoint 오프셋과 일치시켜야합니다. cocos2d가 UIKit처럼 동작하도록하기보다는 cocos2d anchorPoint를 사용하는 것이 훨씬 쉽습니다. 이 설명을 참고하십시오 : http://stackoverflow.com/questions/7808981/moving-a-stick-figure-anchorpoints-animation-or-something-else/7810180#7810180 – LearnCocos2D

+0

나는 본다. 그것은 아주 좋은 설명이었습니다. 따라서 일반 0.5,0.5 앵커 포인트를 사용하면 UIKit에 익숙해 져 있기 때문에 스프라이트 위치가 엉망이됩니다. UIKit 위치 좌표를 Cocos2D 좌표로 변환 할 수있는 방법이 있습니까? –

0

몸 모양의 앵커 포인트를 변경 :

너비를 얻기 위해 작은 X의 정점과 가장 큰, 빼기를 얻기 위해 루프를 수행 같은 루프에서 할 수있는 가장 작은 y를 정점과 최대를 얻을 수 그리고 차이점이있는 모든 정점을 이동하면 0,0에 도형을 배치하면

이됩니다.

최상의 해결책인지 확실하지 않습니다.

관련 문제