Menu
CoddyTech

목표에 도달하기

Coddy Pygame 여정의 게임 루프 섹션에 포함된 레슨. 32개 중 8번째.

게임에는 목표가 필요합니다. 오른쪽 아래 모서리에 초록색 정사각형을 그리고, 플레이어의 정사각형이 그 안에 들어가면 플레이어가 이기도록 하세요.

목표는 (420, 300)에 있으며, 크기는 60×60입니다. 플레이어의 정사각형은 왼쪽 변이 420 이상이고 위쪽 변이 300 이상일 때 목표 안에 있습니다. 두 조건이 모두 참이어야 하므로 and로 연결하세요.

승리 상태는 계속 유지되어야 합니다. 처음에는 False이고 이후에는 True로만 바뀌는 변수에 저장하세요.

won = False

while running:
    # 사각형을 이동하기
    if x >= 420 and y >= 300:
        won = True
    if won:
        screen.fill((40, 110, 70))
    else:
        screen.fill((30, 30, 46))

won이 True가 되면 다시 바꾸는 코드가 없으므로, 정사각형이 목표에서 벗어나더라도 배경은 계속 초록색으로 유지됩니다.

challenge icon

챌린지

쉬움
  1. 루프 전에 won = False로 설정하세요.
  2. x와 y를 제한한 후, x >= 420이고 y >= 300일 때 won = True로 설정하세요.
  3. won이 참이면 화면을 (40, 110, 70)으로 채우고, 그렇지 않으면 (30, 30, 46)으로 채우세요.
  4. 플레이어의 사각형을 그리기 전에 목표 지점을 그리세요. (420, 300, 60, 60) 위치에 초록색 (60, 200, 120)을 사용하세요.

직접 해보기

import pygame

pygame.init()
screen = pygame.display.set_mode((480, 360))
pygame.display.set_caption("Move the Square")
clock = pygame.time.Clock()

x, y = 220, 160

running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False

    keys = pygame.key.get_pressed()
    speed = 4
    if keys[pygame.K_SPACE]:
        speed = 8
    if keys[pygame.K_LEFT]:
        x -= speed
    if keys[pygame.K_RIGHT]:
        x += speed
    if keys[pygame.K_UP]:
        y -= speed
    if keys[pygame.K_DOWN]:
        y += speed

    x = max(0, min(x, 480 - 40))
    y = max(0, min(y, 360 - 40))

    screen.fill((30, 30, 46))
    pygame.draw.rect(screen, (255, 196, 0), (x, y, 40, 40))
    pygame.display.flip()
    clock.tick(60)

pygame.quit()
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

게임 루프의 모든 레슨

직접 연습해 보세요: Pygame 플레이그라운드