목표에 도달하기
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가 되면 다시 값을 설정하는 부분이 없으므로, 정사각형이 목표에서 벗어나더라도 배경은 초록색으로 유지됩니다.
챌린지
쉬움- 루프 전에
won = False를 설정하세요. x와y의 범위를 제한한 후,x >= 420이고y >= 300일 때won = True를 설정하세요.won이 참이면 화면을(40, 110, 70)으로 채우고, 그렇지 않으면(30, 30, 46)으로 채우세요.- 플레이어의 사각형을 그리기 전에 목표 지점을 그리세요.
(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 플레이그라운드