Menu
CoddyTech

목표에 도달하기

Coddy의 Pygame으로 게임 만들기 코스 레슨. 41개 중 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를 만드세요. x >= 420이고 y >= 300일 때 True로 설정하세요.
  2. won이면 (40, 110, 70)으로, 그렇지 않으면 (30, 30, 46)으로 화면을 채우세요.
  3. 정사각형을 그리기 전에 목표를 그리세요. (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()

Pygame으로 게임 만들기의 모든 레슨

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