2011-12-30 3 views
2

모든 CCSprite는 regtangle 영역이지만 일부는 볼 수 있지만 일부는 보이지만 다른 부분은 보이지 않습니다. 그래서 터치 포인트가 보이는 영역인지 아니면 투명한 영역인지를 CCsprite로 터치 할 때 터치 포인트의 픽셀 색상을 얻는 것과 같은 방법으로 이것을 확인하고 싶습니다.CCSprite 안의 픽셀이 투명인지 여부를 확인하는 방법

답변

3

OpenGL API로이 작업을 수행 할 수는 있지만 잘못된 해결책 일 수 있습니다. 필자는 스프라이트 모양의 탭 포인트 (수동으로 정의 됨)를 감지하도록 제안합니다. 테두리 모양을 계산하려면 예를 들어 SpriteHelper 도구를 사용할 수 있습니다. 다각형 안의 점을 검사하려면 (볼록하지 않은 경우에도) 좋은 algorythm이 있습니다 : Determining if a point lies on the interior of a polygon. 내 iPhone 게임에서이 방법을 사용합니다.

  • 성능 : 픽셀 불투명도의 직접 검사에 비해이 방법의 efficienty에 관해서는

    는 질감을 잠그고에서 데이터를 읽을 필요는 OpenGL의 픽셀이,이 FPS를

  • 정확도가 떨어집니다 얻을 수 : 탭은 마우스 클릭, 당신은 아마도 스프라이트의 모양 내부
  • 유연성 (탭의 예를 들어 원에 대한) 일부 지역을 확인 할 수 있도록, 일부 지역을 의미하지 않습니다 : 당신은 당신이 원하는대로 조정할 모양을 할 수있다

추신 : 확실히 픽셀을 확인하려는 경우 좋은 해결책은 텍스처 픽셀의 부울 맵을 추가로 만드는 것입니다 (각 비트는 픽셀 임계 값에 반응합니다).

+0

나는 이것에 대한 자세한 정보를 얻을 수 있습니다 .. 그럴 것입니다 .. 또한 그 alogrithm 링크가 깨졌습니다 – user1201239

+0

나는 알고리즘에 대한 링크를 업데이 트했습니다. 소스 코드에 대한 자세한 설명이 있습니다. – brigadir

+0

고맙습니다. – user1201239

관련 문제