매 프레임 움직이기
Coddy Pygame 여정의 게임 창에서 배우는 Python 섹션에 포함된 레슨. 32개 중 7번째.
게임 루프는 초당 60번 실행되므로, "여기서 변경" 부분의 한 줄은 프레임마다 한 번 실행됩니다. 이 줄을 사용해 매번 변수를 조금씩 바꿔 보세요.
comet_x = comet_x + 2오른쪽부터 읽으세요. comet_x의 값을 가져와 2를 더한 다음, 그 결과를 다시 comet_x에 저장합니다. 값이 40이었다면 이제 42가 됩니다. 다음 프레임에서는 44가 되고, 그다음에는 46이 됩니다.
혜성은 매 프레임 comet_x 위치에 그려지므로, 프레임마다 오른쪽으로 2픽셀씩 더 이동해 초당 120픽셀 움직입니다. 이것이 게임에서 모든 것이 움직이는 방식입니다. 매 프레임 조금씩 바뀌는 숫자를 사용하는 것입니다.
comet_x = 40은 설정 부분에 있으며, 한 번 실행됩니다. 루프 안에 넣으면 프레임마다 혜성의 위치를 40으로 되돌려 혜성이 움직이지 않습니다.
Python에는 짧은 형식이 있습니다. comet_x += 2도 같은 역할을 합니다.
챌린지
쉬움혜성이 날아가게 하세요. # Change things here, once a frame. 부분에서 매 프레임마다 comet_x에 2를 더해 프레임당 오른쪽으로 2픽셀 이동하게 하세요.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Night Sky")
clock = pygame.time.Clock()
# 게임 루프가 시작되기 전에 여기서 필요한 것들을 설정하세요.
moon_x = 160
moon_y = 120
comet_x = 40
comet_y = 200
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# 프레임마다 여기서 필요한 것들을 변경하세요.
screen.fill((20, 24, 48))
# 화면을 채운 후 여기서 그리세요.
pygame.draw.circle(screen, (240, 230, 160), (moon_x, moon_y), 50)
pygame.draw.circle(screen, (120, 200, 255), (comet_x, comet_y), 8)
pygame.display.flip()
clock.tick(60)
pygame.quit()
게임 창에서 배우는 Python의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드