본문 바로가기

[Pygame] ✈️ 전투기 슈팅 게임 만들기 2강 | 플레이어 전투기 생성과 WASD 이동 구현

@도마22026. 1. 12. 19:00
728x90


1. 이번 강의 목표

이번 강의에서는 플레이어 전투기를 화면에 생성하고,
W / A / S / D 키로 이동할 수 있도록 구현합니다.

아직 이미지를 사용하지 않고, 사각형으로 전투기를 표현합니다.


2. 플레이어 전투기 설정

플레이어 전투기는 화면 하단 중앙에서 시작하도록 합니다.

player_width = 40
player_height = 40
player_x = SCREEN_WIDTH // 2 - player_width // 2
player_y = SCREEN_HEIGHT - player_height - 20

player_speed = 5

 

  • 전투기 크기는 40x40으로 설정합니다.
  • 화면 아래쪽에서 약간 띄운 위치에 배치합니다.

3. 키 입력 처리 (WASD)

Pygame에서는 키를 계속 누르고 있는 상태를 감지하기 위해
pygame.key.get_pressed()를 사용합니다.

keys = pygame.key.get_pressed()

if keys[pygame.K_w]:
    player_y -= player_speed
if keys[pygame.K_s]:
    player_y += player_speed
if keys[pygame.K_a]:
    player_x -= player_speed
if keys[pygame.K_d]:
    player_x += player_speed

 

이 코드는 게임 루프 안에서 실행되어야 합니다.


4. 화면 밖 이동 제한

전투기가 화면 밖으로 나가지 않도록 제한합니다.

if player_x < 0:
    player_x = 0
if player_x > SCREEN_WIDTH - player_width:
    player_x = SCREEN_WIDTH - player_width
if player_y < 0:
    player_y = 0
if player_y > SCREEN_HEIGHT - player_height:
    player_y = SCREEN_HEIGHT - player_height

5. 플레이어 전투기 그리기

사각형을 사용하여 전투기를 화면에 그립니다.

pygame.draw.rect(
    screen,
    (0, 200, 255),
    (player_x, player_y, player_width, player_height)
)

6. 현재 단계 결과

이제 게임을 실행하면 다음과 같은 동작을 확인할 수 있습니다.

  • 화면 하단에 전투기가 표시됩니다.
  • WASD 키로 전투기를 자유롭게 이동할 수 있습니다.
  • 화면 밖으로는 나가지 않습니다.


7. 마무리

이번 강의에서는 다음 내용을 다뤘습니다.

  • 플레이어 전투기 생성
  • WASD 키 입력 처리
  • 화면 밖 이동 제한

다음 강의에서는 스페이스바를 눌러 총알을 발사해 보겠습니다.


전체 코드

더보기
import pygame
import sys

pygame.init()

# 화면 설정
SCREEN_WIDTH = 480
SCREEN_HEIGHT = 640
screen = pygame.display.set_mode((SCREEN_WIDTH, SCREEN_HEIGHT))
pygame.display.set_caption("Shooting Game")

# FPS 설정
clock = pygame.time.Clock()
FPS = 60

# 플레이어 설정
player_width = 40
player_height = 40
player_x = SCREEN_WIDTH // 2 - player_width // 2
player_y = SCREEN_HEIGHT - player_height - 20
player_speed = 5

# 게임 루프
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_w]:
        player_y -= player_speed
    if keys[pygame.K_s]:
        player_y += player_speed
    if keys[pygame.K_a]:
        player_x -= player_speed
    if keys[pygame.K_d]:
        player_x += player_speed

    # 화면 밖 제한
    if player_x < 0:
        player_x = 0
    if player_x > SCREEN_WIDTH - player_width:
        player_x = SCREEN_WIDTH - player_width
    if player_y < 0:
        player_y = 0
    if player_y > SCREEN_HEIGHT - player_height:
        player_y = SCREEN_HEIGHT - player_height

    # 화면 그리기
    screen.fill((0, 0, 0))
    pygame.draw.rect(
        screen,
        (0, 200, 255),
        (player_x, player_y, player_width, player_height)
    )

    pygame.display.update()
    clock.tick(FPS)

pygame.quit()
sys.exit()

728x90
도마2
@도마2 :: 도마의 코드노트

초보자를 위한 코딩 강의를 정리합니다. 파이썬부터 C#, Unity 게임 제작까지 차근차근 기록합니다. — 도마

목차