Menu
CoddyTech

화면 안에 머무르기

Coddy의 Pygame으로 게임 만들기 코스 레슨. 41개 중 7번째.

오른쪽 키를 충분히 오래 누르면 사각형이 창 밖으로 나갑니다. 사각형이 창 안에 머물게 하려면, x와 y의 값을 바꾼 뒤 범위를 제한하세요.

min(a, b)는 더 작은 수를 반환하고, max(a, b)는 더 큰 수를 반환합니다. 두 함수를 함께 사용하면 수를 두 경계 사이에 유지할 수 있습니다.

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

min(x, 440)은 x가 440을 넘지 않게 하고, max(0, ...)는 0보다 작아지지 않게 합니다. 왜 480이 아니라 440일까요? x는 사각형의 왼쪽 변이므로 오른쪽 변은 x + 40입니다. 440일 때 오른쪽 변이 창의 가장자리에 닿습니다.

창의 높이를 기준으로 y에도 같은 원리가 적용됩니다.

challenge icon

챌린지

쉬움

정사각형이 480 x 360 창 안에 있도록 하세요.

  1. 네 가지 화살표 테스트 후, 화면을 채우기 전에 x를 0부터 440까지로 제한하세요.
  2. y를 0부터 320까지로 제한하세요.

‘플레이’를 누르고 화살표 키를 누르고 있으면 정사각형이 가장자리에서 멈춥니다. 그런 다음 ‘확인’을 누르세요.

직접 해보기

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

    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 플레이그라운드