Pygame에서 플랫폼 게임에 스크롤 추가
플랫폼 게임에서 플레이어는 화면의 위치를 중앙에 유지하면서 레벨을 탐색합니다. 이 효과는 게임 세계가 플레이어의 위치와 독립적으로 움직일 수 있도록 하는 스크롤링을 통해 달성됩니다.
스크롤링 구현:
Pygame에서 스크롤링을 구현하려면 카메라 게임 세계와 플레이어 위치 사이의 오프셋을 정의하는 클래스입니다. 그런 다음 이 오프셋은 화면에 그려지는 모든 게임 엔터티의 위치에 적용됩니다.
카메라 클래스 생성:
class Camera: def __init__(self, camera_func, width, height): self.camera_func = camera_func self.state = Rect(0, 0, width, height) def apply(self, target): return target.rect.move(self.state.topleft) def update(self, target): self.state = self.camera_func(self.state, target.rect)
카메라 기능:
있음 구현하는 방법은 다양하다 Camera_func:
플레이어 중앙 조정:
def simple_camera(camera, target_rect): l, t, _, _ = target_rect # l = left, t = top _, _, w, h = camera # w = width, h = height return Rect(-l + HALF_WIDTH, -t + HALF_HEIGHT, w, h)
레벨 유지 경계:
def complex_camera(camera, target_rect): x = -target_rect.center[0] + WIN_WIDTH/2 y = -target_rect.center[1] + WIN_HEIGHT/2 camera.topleft += (pygame.Vector2((x, y)) - pygame.Vector2(camera.topleft)) * 0.06 # add some smoothness coolnes camera.x = max(-(camera.width-WIN_WIDTH), min(0, camera.x)) camera.y = max(-(camera.height-WIN_HEIGHT), min(0, camera.y)) return camera
엔티티에 스크롤 적용:
스크롤을 적용하려면 Camera 클래스를 인스턴스화하고 해당 업데이트를 호출하고 메인 게임 내에서 메소드 적용 루프:
# Create the camera camera = Camera(complex_camera, total_level_width, total_level_height) # Update the camera camera.update(player) # Apply scrolling to all entities for e in entities: screen.blit(e.image, camera.apply(e))
추가 고려 사항:
이 단계를 따르면 Pygame 플랫폼에서 스크롤을 구현하고 매끄럽고 매력적인 경험을 만들 수 있습니다. 플레이어입니다.
위 내용은 파이게임 플랫포머 게임에서 부드러운 스크롤링을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!