Menu
CoddyTech

매 프레임 움직이기

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도 같은 역할을 합니다.

challenge icon

챌린지

쉬움

혜성이 날아가게 하세요. # 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 플레이그라운드