채우기 색상을 사용하는 대신 파이게임을 사용하여 그리드에 이미지를 로드하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com//questions/12663764

  •  11-12-2019
  •  | 
  •  

문제

파이게임을 사용하여 "도시 지도"를 만들려고 합니다.건물의 이미지를 단순히 색상으로 채우는 것이 아니라 특정 그리드 좌표에 넣을 수 있기를 원합니다.

이것이 지도 그리드를 만드는 방법입니다.

def clear():
    for r in range(rows):
        for c in range(rows):
            if r%3 == 1 and c%3 == 1:
                color = brown;
                grid[r][c] = 1;
            else:
                color = white;
                grid[r][c] = 0; 
            pygame.draw.rect(screen, color, [(margin+width)*c+margin, (margin+height)*r+margin, width, height])         
    pygame.display.flip();

이제 특정 위치의 갈색 그리드에 건물 이미지를 어떻게 배치합니까?온라인에서 일부 샘플을 사용해 보았지만 제대로 작동하지 않는 것 같습니다.도움을 주시면 감사하겠습니다.

파이게임에 사용할 수 있는 무료 스프라이트의 좋은 소스가 있는 사람이 있으면 알려주시기 바랍니다.감사해요!

this is the grid map i created

도움이 되었습니까?

해결책

제가 쓴 예는 다음과 같습니다.그것은 numpy 타일 ​​데이터를 저장합니다.코드와 이미지는 다음에서 다운로드할 수 있습니다. http://code.google.com/p/ninmonkey/source/.../maptiles (실패하면 다음 URL을 사용하세요. https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/ninmonkey/source-archive.zip )

  • 누르다 에스 마우스 스크롤을 전환합니다.
  • Map.tiles 2D입니다 numpy.array 타일의 ID를 저장하는 곳

tileset demo

타일맵 위에 유닛/스프라이트를 추가하려면:(당신의 건물은 이것으로 간주될 수 있습니다)

  • 세계 좌표를 사용하여 위치 저장
  • 다음을 사용하여 그립니다. world2screen 좌표 기능.

이 함수는 세계 좌표에 지도 오프셋을 추가합니다.따라서 지도 오프셋이 (-100,0)이고 유닛의 세계 좌표가 (0,0)인 경우 (-100,0)에서 렌더링하여 예상대로 지도의 왼쪽 상단에 배치합니다. 스크롤됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top