채우기 색상을 사용하는 대신 파이게임을 사용하여 그리드에 이미지를 로드하는 방법은 무엇입니까?
문제
파이게임을 사용하여 "도시 지도"를 만들려고 합니다.건물의 이미지를 단순히 색상으로 채우는 것이 아니라 특정 그리드 좌표에 넣을 수 있기를 원합니다.
이것이 지도 그리드를 만드는 방법입니다.
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();
이제 특정 위치의 갈색 그리드에 건물 이미지를 어떻게 배치합니까?온라인에서 일부 샘플을 사용해 보았지만 제대로 작동하지 않는 것 같습니다.도움을 주시면 감사하겠습니다.
파이게임에 사용할 수 있는 무료 스프라이트의 좋은 소스가 있는 사람이 있으면 알려주시기 바랍니다.감사해요!
해결책
제가 쓴 예는 다음과 같습니다.그것은 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를 저장하는 곳
타일맵 위에 유닛/스프라이트를 추가하려면:(당신의 건물은 이것으로 간주될 수 있습니다)
- 세계 좌표를 사용하여 위치 저장
- 다음을 사용하여 그립니다.
world2screen
좌표 기능.
이 함수는 세계 좌표에 지도 오프셋을 추가합니다.따라서 지도 오프셋이 (-100,0)이고 유닛의 세계 좌표가 (0,0)인 경우 (-100,0)에서 렌더링하여 예상대로 지도의 왼쪽 상단에 배치합니다. 스크롤됩니다.
제휴하지 않습니다 StackOverflow