Menu
CoddyTech

목표에 도달하기

Coddy의 Pygame으로 게임 만들기 코스 레슨. 40개 중 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으로 게임 만들기의 모든 레슨

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