2014-01-07 5 views
0

내 게임 맵은 다른 타일 (예 : map [y] [x] = 타일)로 구성된 2 차원 매트릭스입니다. 각 타일에는 이미지와 직사각형이 있습니다. 현재지도의 크기는 1000여 개에 이르며 모든 타일을 화면에 표시하는 데 꽤 많은 시간이 걸립니다.파이 게임 타일 맵을 효율적으로 블 리팅

현재 나의 목표는 매트릭스의 각 항목에 액세스하는 데 걸리는 시간을 줄이는 방법을 찾고, 필요한 타일 개체 만 화면에 blit하는 것입니다.

- 사이드 스크롤링 게임이므로 아무 타일도 고정되어 있지 않습니다 (사각형은 항상 플레이어의 움직임에 따라 조정되므로 필수적입니다). 화면 전체를 다시 blit).

  1. 타일 매트릭스 타일의 경우 : 블리트 타일
  2. 블리트 플레이어와 NPC들
  3. 업데이트 플레이어 위치
  4. 만약 플레이어 화면 여기

    게임의 맵 기능을하는 방법을 일반적으로 움직임 : 모든 타일 조정 (카메라 시스템)

나는 더 효율적인 아이디어를 찾고있다. 그는 똑같은. 위에서 말했듯이, 모든 타일을 블리 팅하는 데는 많은 시간이 걸리고,이를 추가하기 위해 위치를 계속 변경하는 경우 다른 타일을 선택적으로 blit하는 방법을 모르겠습니다. 모든 아이디어를 환영합니다. 고맙습니다.

답변

1

타일을 반복 할 때 현재 타일이 카메라의보기 포트에 포함되어 있는지 확인하기 위해 테스트를 수행 할 수 있습니다. 그렇지 않으면 타일을 스킵 할 수 있습니다.

contains 메서드는 사각형이 다른 사각형 안에 있는지 결정합니다. 또한 참조, 화면 공간 및 세계 공간의 두 가지 다른 프레임을 사용해야합니다.

관련 문제