저는 파이 게임으로 작업하고 있습니다. 2D 스크롤링 게임을 만들고 싶습니다. 내 큰지도를 만들기 위해 필요한 모든 직사각형을 프로그래밍하지 않아도됩니다. png 파일 (지도가 될 것입니다)을 사용할 수 있습니까? 스프라이트가 이미지의 어떤 부분과도 직각 인 것처럼 상호 작용할 수 있습니까? 또는 이미지를 가져 와서 rect로 변환 할 수 있습니까? 미리 감사드립니다.파이 게임에서 대화식지도로 PNG 파일 사용
1
A
답변
0
"상호 작용"은 주로 충돌 감지 (즉, 캐릭터가 이동할 수있는 위치와 이동할 수없는 곳을 제어)를 말합니다. 이는 많은 리소스를 사용할 수있는 매우 광범위한 주제입니다.
pygame.mask
모듈 (docs here)을 살펴보십시오. 당신이 묘사하고있는 것을하기 위해서, 당신은 당신의 레벨을 겹쳐서 분리 된 마스크 이미지를 만들 수 있습니다. 통과 할 수없는 영역을위한 하나의 색과 할 수있는 영역을위한 또 다른 색. 그런 다음 pygame.mask.from_threshold()
은 자동으로 Mask
개체를 만들 수 있습니다.이 개체를 사용하여 스프라이트와 레벨 간의 충돌을 감지 할 수 있습니다.
가 충돌 마스크는 다음과 같습니다 :
이주 박스가 고려되지 않습니다
아주 간단한 예를 들어이 마리오 수준을 고려 레벨의 일부 임에도 불구하고 마스크에 이 방법은 레벨의 완전히 정적 인 조각에만 유용합니다. 박스는 아마 충돌을 감지하기 위해 자신의 rect/mask가있는 스프라이트 일 것입니다. 이 경우 파이프는 단단한 객체 일뿐입니다.
복잡한 마스크가있는 전체 레벨에 대해 하나의 큰 이미지는 성능 문제를 일으킬 수 있습니다. 제 경험으로 보면 큰 이미지를 스크롤하는 것은 파이 게임이 잘하는 것이 아닙니다.
tl; dr - 성능은 다소 좋아질 수 있지만 성능에 좋지는 않습니다.
관련 문제
- 1. 파이 게임에서 충돌 사용
- 2. 파이 게임에서 스레딩 사용
- 3. 파이 게임에서 MOUSEBUTTONDOWN 사용
- 4. 파이 게임에서 png로드
- 5. 파이 게임에서 급속한 산란
- 6. 파이 게임에서 등반 사다리
- 7. 파이 게임에서 레벨 변경
- 8. 파이 게임에서 움직이는 이미지 바꾸기
- 9. 파이 게임에서 타원 이동
- 10. 파이 게임에서 배경 변경
- 11. 파이 게임에서 타일 매핑
- 12. 파이 게임에서 sys.exit() 문제
- 13. "연속"파이 게임에서 플롯하기
- 14. 파이 게임에서 keydown 관리
- 15. 파이 게임에서 이미지 회전
- 16. 파이 게임에서 키보드 입력하기
- 17. 다음 파이 게임에서 숨기기
- 18. 파이 게임에서 이미지 변형
- 19. 파이 게임에서 깜박임
- 20. 파이 게임에서 지연되는 스프라이트
- 21. 파이 게임에서 스레딩
- 22. 파이 게임에서 플레이어 점프하기
- 23. 파이 게임에서 점프하기
- 24. 파이 게임에서 지연 기능
- 25. 파이 게임에서 촬영
- 26. 파이 게임에서 collide.rect가 어떻게 동작합니까?
- 27. 파이 게임에서 충돌을 추가하는 방법
- 28. 파이 게임에서 파이 게임을 사용하는 파이썬으로 게임하기
- 29. 하나의 프레임이 파이 게임에서 멈춤
- 30. 파이 게임에서 이미지 스프 라이트를 순환하는 법