목표에 도달하기
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가 되면 다시 바꾸는 코드가 없으므로, 정사각형이 목표에서 벗어나더라도 배경은 계속 초록색으로 유지됩니다.
챌린지
쉬움- 루프 전에
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 플레이그라운드