보기 기반 응용 프로그램에서 픽셀 완전 충돌을 수행 할 수 있습니까? 나는 예제 코드를 찾고 있었지만 행운은 없었습니다 ... 또한 특정 색상의 충돌을 나타 내기 위해 컬러 비트 맵을 사용할 수 있습니까?픽셀 완벽한 충돌?
2
A
답변
2
하실 수 있습니다. 그래도 CGImage을 사용하면 가장 쉬운 것 같습니다.
2 진 부울 배열을 만들어 픽셀 값을 읽어 히트 그리드 (기본적으로 2x2 행렬)를 만든 다음 게임 개체 클래스에 저장할 수 있습니다.
어레이 논리 값에 화소 데이터를 읽고, 다음 루프를 사용하는의 CGImage (the code is here) 대한 화소 데이터에 직접 액세스 할 필요가있을 것이다 : 케이 분명히
BOOL pixelGrid[xPixels][yPixels];
for (int i = 0; i < xPixels; i++) {
for (int j = 0; j < yPixels; j++) {
pixelGrid[i][j] = pixelIsOpaque(i, j);
}
}
있어서 pixelIsOpaque() 위에서 ' 픽셀 값을 추출하기 위해 샘플 코드를 사용하면 무엇이든 바꿀 수 있습니다. 픽셀이 존재하는지 여부를 저장하고 있습니다 (기본적으로 픽셀이 불투명도> 0인지 확인).
일단이 그리드가 생성되면 (프로그램 시작시 한 번 생성하고 결과로 생성 된 2D 배열을 게임 객체 안에 저장) 충돌 감지 방법이 필요합니다. 내가 100 % 컴파일 가능한하지 않을 수 있습니다하지만 난 당신에게 아이디어를 제공 희망 있도록
BOOL detectCollision(BOOL *pixelGrid1, BOOL *pixelGrid2) {
BOOL result = NO;
for (int i = 0; i < xPixels; i++) {
for (int j = 0; j < yPixels; j++) {
if (pixelGrid1[i][j].opacity != 0 && pixelGrid2[i][j].opacity != 0]) {
result = YES; break;
}
}
}
return result;
}
난 그냥 즉석에서이 코드를 썼다. 쉽게 수정할 수 있지만 불투명도와 비교하는 대신 원본 색상 데이터를 가져 오는 데 픽셀 색 값과 다시 비교하면 see here입니다.
관련 문제
- 1. html5의 캔버스와 완벽한 픽셀 충돌 문제
- 2. C++ 3D 완벽한 충돌 감지
- 3. 픽셀 충돌 감지?
- 4. 픽셀 완벽한 텍스처 매핑과 최신 OpenGL
- 5. Linux에서 "픽셀 완벽한"GUI를 구축하는 방법은 무엇입니까?
- 6. 완벽한 픽셀 CSS 레이아웃을위한 제안 사항은 무엇입니까?
- 7. iPhone OpenGL ES 2.0 - 픽셀 완벽한 텍스처
- 8. Safari - PixelPlugin (firefox addon)없이 픽셀 완벽한 레이아웃을 만들려면 어떻게해야합니까?
- 9. 웹 페이지의 완벽한 픽셀 출력 (화면에서 볼 수 있음)
- 10. HTML5 캔버스에서 픽셀 완전 충돌 감지
- 11. 완벽한 라인 렌더링 as3
- 12. "완벽한 교실"만들기
- 13. Android OpenGL : 비트 맵 데이터가없는 픽셀 완전 충돌
- 14. 자바 스크립트/Jquery/Gamequery에서 픽셀 충돌 당 감지
- 15. 이미지의 픽셀 색상 얻기
- 16. 완벽한 iphone rss 프로젝트
- 17. 완벽한 해시 함수?
- 18. 더 완벽한 오류 로그
- 19. SecurityManager는 완벽한 보안 솔루션입니까?
- 20. 완벽한 전달 - 어셈블리
- 21. WPF 캔버스의 완벽한 센터
- 22. 완벽한 이미지 교체/업데이트
- 23. 완전한 원형에 완벽한 원과 완벽한 원형에서 직선 충돌로 처리 Java에서의 처리
- 24. CSS의 픽셀 (픽셀)이란 무엇입니까?
- 25. WPF 픽셀 대 데스크톱 픽셀
- 26. shared_ptr의 어설의 픽셀 = 0
- 27. 이것은 공장 패턴에있어 완벽한 문제입니까?
- 28. 웹 스크래핑에 "완벽한"언어가 있습니까?
- 29. 파생 할당 연산자와 완벽한 전달
- 30. C# - 완벽한 구문 강조 표시
+1 우수 정보. 나는 픽셀 완벽한 충돌에 정말로 관심이 있었다. 나는 이번 주말에 이것이 효과가 있는지보기 위해 노력할 것이다. 나는 단지 성능에 대해 우려하고 있지만, 그것은 나중에 달라질 수있는 또 다른 문제입니다. – Tovi7