날아가는 방향을 향하기
Coddy Pygame 여정의 스프라이트와 이미지 섹션에 포함된 레슨. 36개 중 7번째.
파일에서 우주선은 위를 향합니다. rotate(ship, -90)로 회전하면 오른쪽을 향하는데, 옆으로 날아가는 우주선에 알맞습니다. 왼쪽으로 날아갈 때는 왼쪽을 향해야 합니다.
pygame.transform.flip(image, flip_x, flip_y)는 좌우가 뒤집힌 복사본을 만들어 줍니다. True, False는 좌우로 뒤집고, False, True는 위아래로 뒤집습니다.
ship_right = pygame.transform.rotate(ship, -90)
ship_left = pygame.transform.flip(ship_right, True, False)두 이미지는 모두 루프 전에 한 번 만들어집니다. 그런 다음 게임은 어떤 이미지를 표시할지 변수에 기억하고, 키를 누르면 그 값이 바뀝니다.
if keys[pygame.K_LEFT]:
ship_rect.x -= 5
image = ship_left매 프레임 image를 그리세요. 아무 키도 누르지 않으면 image는 마지막 값을 유지하므로, 우주선은 마지막으로 날아가던 방향을 계속 향합니다.
챌린지
중급- 반복문 전에
ship_left를 만드세요.ship_right를 좌우로 뒤집은 이미지입니다. - 반복문 전에
image = ship_right로 설정하세요. - 왼쪽 키를 누르고 있으면
image = ship_left로 설정하고, 오른쪽 키를 누르고 있으면image = ship_right로 설정하세요. 이동은 그대로 유지합니다. ship_rect위치에image를 그리세요.
직접 해보기
import pygame
pygame.init()
screen = pygame.display.set_mode((640, 480))
pygame.display.set_caption("Face the Way You Fly")
clock = pygame.time.Clock()
ship = pygame.image.load("assets/images/ship.png").convert_alpha()
ship_right = pygame.transform.rotate(ship, -90)
ship_rect = ship_right.get_rect(center=(320, 240))
running = True
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
keys = pygame.key.get_pressed()
if keys[pygame.K_LEFT]:
ship_rect.x -= 5
if keys[pygame.K_RIGHT]:
ship_rect.x += 5
ship_rect.clamp_ip(screen.get_rect())
screen.fill((20, 22, 40))
screen.blit(ship_right, ship_rect)
pygame.display.flip()
clock.tick(60)
pygame.quit()
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
스프라이트와 이미지의 모든 레슨
직접 연습해 보세요: Pygame 플레이그라운드