화면 가장자리에서 반대편으로 이동
Coddy Pygame 여정의 게임 루프 섹션에 포함된 레슨. 32개 중 22번째.
많은 우주 게임에서는 화면 한쪽을 벗어난 우주선이나 바위가 반대쪽에서 다시 나타납니다. 이것이 화면 순환입니다. 여기서 바위는 오른쪽 위로 떠다니다가 몇 초 후 완전히 사라집니다.
이동한 후 각 가장자리를 확인하세요. 바위의 반지름은 20이므로, 화면에서 완전히 보이지 않을 때까지 벗어난 뒤 다시 나타나게 하세요. 오른쪽에서 480 + 20을 지나면 -20 위치에 다시 나타나 화면 왼쪽 가장자리 너머에서 안으로 미끄러져 들어옵니다.
if pos.x > 500:
pos.x = -20
if pos.x < -20:
pos.x = 500높이를 기준으로 y도 마찬가지입니다. 아래쪽에서 380을 지나면 -20 위치에 다시 나타나고, -20보다 위로 올라가면 380 위치에 다시 나타납니다.
위치만 순간 이동합니다. 속도는 그대로이므로 바위는 화면 순환 후에도 같은 방향으로 계속 떠다닙니다.
챌린지
쉬움pos += vel * dt 뒤에 바위가 화면 반대편에 나타나도록 처리하세요:
- 500보다 크면
pos.x는 -20이 되고, -20보다 작으면 500이 됩니다. - 380보다 크면
pos.y는 -20이 되고, -20보다 작으면 380이 됩니다.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Drifting Rock")
clock = pygame.time.Clock()
pos = pygame.Vector2(240, 180)
vel = pygame.Vector2(120, -70)
dt = 0
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
pos += vel * dt
screen.fill((20, 20, 34))
pygame.draw.circle(screen, (150, 150, 160), pos, 20)
pygame.display.flip()
dt = clock.tick(60) / 1000
pygame.quit()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
게임 루프의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드