2013-03-16 4 views
0

gamedesign에서 우리는 mapimages의 backgroundlayer를 확인할 수 있기 때문에 (잘하면) collisiondetection을 구현하고자합니다. 우리는 현재 .png를 사용하고 있지만 투명도 채널 (알파)은 최상위 레이어 (투명도 결정)에 유용한 정보이므로 이미지를 투명하게 만들지 않으면이 레이어를 비트 마스크로 사용할 수 없습니다. 우리 게임은 타일 기반의 RPG이기 때문에 검사는 간단합니다 (알파 블록이 1이면 모든 블록 크기의 픽셀을 반복하고이 블록은 맵 솔리드이므로 걸을 수 없거나 밟을 수 없음).다중 이미지가있는 이미지

대안 (우리가 생각할 수있는 대안)은 너무 많은 설정이 필요합니다. 예를 들어 두 번째 이미지가 있으면 완전히 일치해야하므로 오류가 발생하지 않습니다. 또한 이미지의 개별 블록을 걷기 쉽도록 지정하면이 정보를 이미지에 저장하거나 수동으로 설정해야합니다. 이는 너무 무차별 적입니다. 투명성 레이어 아이디어 (작업 방법을 제안 할 수 있다면)는 포토샵에서 이미지의 그림자를 만들고 투명 이미지를 만들 수 있으므로 거의 효과가 없습니다.

TLDR; 투명도를 렌더링하지 않고 자바의 png 알파 채널을 비트 마스크 형태로 사용할 수 있습니까? 모든 이미지 포맷은 여러 레이어를 저장할 수있는 스윙으로 쉽게 처리됩니까?

답변

0

하나의 값으로 조작하고 있으므로 다른 채널 중 1 개에 1 개의 숫자를 예약하지 않는 이유는 무엇입니까? 1600 만 가지의 색상을 유지하지만 b = 0은 충돌 색상으로 유지합니다. 사람들은 0,0,0과 0,0,1의 차이점을 알 수 없으므로 이상한 투명성 인코딩없이 문제가 해결 된 순수 검정색 만 사용하면 안됩니다.

+0

지도 이미지에 실제로 (0,0,1)의 거의 검은 색 픽셀이 있으면 어떨까요? 이것을 인코딩하는 문제도 있습니다. – arynaq

+0

그것은 당신의 게임이고, 당신은 게임 자산을 통제합니다. 당신은 그 물건을 확인합니다. 거기에는 많은 도구가 있습니다. 필요한 모든 채널이 필요한 1 비트 값이면 전체 채널을 추가하는 것은 전체 채널을 추가하는 것은 매우 낭비입니다. 물론 알파 채널을 사용하여 충돌이 필요한지 여부에 따라 255 또는 254로 설정할 수 있지만 그럴 수는 없습니다. 불필요하게 자산 크기를 1/3만큼 증가 시켰습니다. –

관련 문제