직접적인 도움 이외의 조언을 찾고 있습니다.Platformer 타일 엔진 - 긴 타일로 할 일에 대한 조언
저는 XNA에서 8 비트 플랫폼 게임을하고 있습니다. 나는 이미 160 시간을 이미 침몰 시켰고, 나는 가지고있는 엔진에 문제가 생기기 시작했습니다. 기본적으로 XNA platformer 데모의 수정/수정 된 버전입니다. 내 타일의 전부 또는 대부분은 32x32이지만 일부는 책상처럼 64x32px 크기입니다. 일부는 식물처럼 폭이 32 인치, 높이가 64입니다.
나는 XNA 자습서의 작성자가 타일 매핑을 수행하는 방식과 비슷한 시점에 한 번에 .png 만 GPP로 보내고 있습니다. 애니메이션 스프라이트의 경우 문자의 다른 프레임 타일 맵을 사용합니다. 타일 맵 데이터의 경우 XNA 자습서와 마찬가지로 텍스트 파일을 읽습니다.
넓고 키가 큰 타일을 어떻게 수용해야합니까? 나는 두 개의 계층화 된 타일 시스템을 만들어야합니까? (나는 유지 - 단순 - 어리석은 규칙을 준수해야한다고 생각했습니다)?
지금 나는 넓은 타일을 확장하기 위해 투명 타일을 사용하고 있습니다.
의자 데스크 :
chair http://dl.dropbox.com/u/8446900/game_screen_desk.png
.....
...h.
..d".
#####
공장과 의자 :
desk http://dl.dropbox.com/u/8446900/game_screen_plant.png
..p...h.
..,...,.
########
의자는 '시간'이되고, 'D'는 책상입니다, 'p'는 식물이고 ','는 투명한 배경 타일입니다 (상호 작용 없음 사용자와 함께). '' '는 사용자가 서서 사용할 수있는 투명한 타일을위한 것입니다 (책상 확장). 보시다시피 배경에 구멍이있는 것 같습니다.
실제 타일 맵을 만들어야합니까? 하나의 대형 PNG로 모든 것을 결합 할 수 있습니까? 내가 취할 수있는 또 다른 옵션은 실제로 두 개의 서로 다른 타일로 각각의 너비 또는 높이 타일을 자르는 것입니다. 어떻게 전문가가이 작업을 수행합니까? 하루의 플랫 포머가 실행됩니다
UPDATE :.. 대답을 검토 한 결과,이 시트에 스프라이트를 팩 매우 유용한 도구를 발견
http://spritesheetpacker.codeplex.com/
을업데이트 : 새로 업그레이드 된 타일 엔진은 훨씬 빠르고 간단합니다. 아래 조언은 훌륭했습니다. 권장.
롤, 저는 예술가입니다. 그건 문제가 아니야. 그래픽을 게임으로 가져 오는 것이 어떻습니까? 여러 개의 타일 또는 여러 개의 이미지를 하나의 큰 이미지로? 나는 RAM이 제약 조건 이었지만 지금은 그만한 가치가 있는지 궁금해합니다. 아마도 Windows Phone으로 이동하여 성능을 고려해야합니다. – montag
내 진짜 질문은 각 항목이 XNA 콘텐츠 파이프 라인에 개별적으로 보내지는 것에 의해 얼마나 많은 cpu/ram이 낭비 되는가하는 점을 짐작할 수 있습니다. 각 항목을 개별적으로 GPU에 보내거나 큰 시트를 가지고 잘라내는 것이 더 낫겠습니까? – montag
오, 확실히 하나의 스프라이트 시트. 다른 텍스처를 시도하고 바인딩 할 때마다 메모리가 낭비되는 것은 아닙니다. 렌더링 스테이트가 변경되고 값이 비싸기 때문입니다. – Ani