2011-10-01 3 views
1

내 응용 프로그램에서, 나는 CCSprites 잔뜩 있고 CCSprites에 투명하지 않은 픽셀이 충돌 할 때만 작동합니다 충돌 감지 기능을 갖고 싶습니다. 나는 충돌하는 스프라이트 사이의 색을 제한하고 싶지 않습니다. 나는 'Pixel Perfect Collision Detection'스레드가 Cocos2D 포럼에서 무엇을하는지는 생각하지만 실제 충돌을 위해 어떤 색을 사용하고 싶습니다. 이 충돌 감지는 내 게임 루프에 있으므로 너무 비쌀 수 없습니다. 어쨌든, 누구든지 내가 어떻게 할 수 있는지에 대한 아이디어가 있습니까? Cocos2D, Box2D 또는 Chipmunk 또는 UIKit을 사용하면 기꺼이 사용합니다.픽셀 충돌 감지?

감사합니다.

답변

3

하드웨어 렌더링 그래픽에 대해 "픽셀 완벽한 충돌이 필요합니다."와 "나는 너무 비싸지 않게하고 싶습니다."는 상호 배타적입니다.

복잡한 변환, 앤티 앨리어싱 또는 하위 픽셀 배치를 허용하지 않는보다 단순한 렌더러를 작성하거나 실제 GPU를 사용하여 일종의 충돌 마스크를 렌더링하십시오. GPU에서 문제를 일으키는 것은 GPU에 물건을 보내는 것이 빠르며 비용을 회수하는 데 비용이 많이 든다는 것입니다. 이 기법이 매우 드문 이유가 있습니다.

Chipmunk Pro의 자동 지오메트리 스터프는 다양한 품종의 이미지를 충돌 셰이프로 변환하는 것을 지원하지만 아직 완성되지 않았습니다.

1

성능을 잃고 싶지 않으면 할 수 있습니다. 원을 기반으로 시스템 콜리 션을 수행하십시오. 충돌을 수행하는 가장 좋은 방법입니다.