Python) 파이 게임 틀 만들기 (프레임, 배경, 캐릭터, 키보드 설정)

2022. 7. 3. 15:04코딩/- Project: pygame

728x90
반응형
# import pygame
import pygame
# 파이 게임 초기화 (초기 설정, 반드시 필요)
pygame.init()
# 화면 크기 설정
screen_width = 480 # 화면 가로 크기
screen_height = 640 # 화면 세로 크기
screen = pygame.display.set_mode((screen_width, screen_height))
# 배경 이미지 불러오기
background = pygame.image.load("C:\\Users\\GGyu\\Desktop\\project\\pygame_basic\\background.png")
# 캐릭터(스프라이트) 불러오기
character = pygame.image.load("C:\\Users\\GGyu\\Desktop\\project\\pygame_basic\\character.png")
character_size = character.get_rect().size # 이미지 크기를 구해옴
character_width = character_size[0] # 캐릭터의 가로 크기
character_height = character_size[1] # 캐릭터의 세로 크기
character_x_pos = (screen_width/2) - (character_width/2) # 화면 가로의 절반 크기 (캐릭터의 좌우 좌표)
character_y_pos = screen_height - character_height # 화면 세로 크기 가장 아래 (캐릭터의 상하 좌표)
# 이동할 좌표
to_x = 0 # 가로축
to_y = 0 # 세로축
# 화면 타이틀 설정
pygame.display.set_caption("DDochi Game") # 게임 이름
# 이벤트 루프 (항상 실행되고 있어야 게임 종료 일어나지 않음)
running = True # 게임 진행 중인지 확인
while running:
for event in pygame.event.get():
if event.type == pygame.QUIT: # 창을 닫는 이벤트가 발생한 경우
running = False # 게임 진행 = False 로 설정
if event.type == pygame.KEYDOWN: # 키보드가 눌러졌는 지 확인
if event.key == pygame.K_LEFT: # 캐릭터를 왼쪽으로
to_x -= 1
elif event.key == pygame.K_RIGHT: # 캐릭터를 오른쪽으로
to_x += 1
elif event.key == pygame.K_UP: # 캐릭터를 위쪽으로
to_y -= 1
elif event.key == pygame.K_DOWN: # 캐릭터를 아래로
to_y += 1
if event.type == pygame.KEYUP: # 방향키에서 손을 떼면
if event.key == pygame.K_LEFT or event.key == pygame.K_RIGHT:
to_x = 0
if event.key == pygame.K_UP or event.key == pygame.K_DOWN:
to_y = 0
# 캐릭터 위치 = 움직인 위치 설정값
character_x_pos += to_x
character_y_pos += to_y
# 가로 경계선 (캐릭터 못벗어나게 하기)
if character_x_pos < 0:
character_x_pos = 0
elif character_x_pos > screen_width - character_width:
character_x_pos = screen_width - character_width
# 세로 경계선 (캐릭터 못벗어나게 하기)
if character_y_pos < 0:
character_y_pos = 0
elif character_y_pos > screen_height - character_height:
character_y_pos = screen_height - character_height
# 배경 및 캐릭터 (파일, 생성 기준 좌표)
screen.blit(background, (0,0))
screen.blit(character, (character_x_pos, character_y_pos))
# 게임 화면을 지속적으로 update
pygame.display.update()
# pygame 종료
pygame.quit()
view raw pygame_basic.py hosted with ❤ by GitHub

 

유튜브 동영상을 참조해서 파이 게임 모듈을 갖고 프레임, 배경, 캐릭터, 키보드 설정까지 완료한 코드다.

 

파이게임 툴의 가장 신기한 것은 좌표값이다.

대부분 왼쪽 아래를 기준으로 (0,0)를 잡는 것이 통상적이다.

하지만 여기서는 왼쪽 위를 (0,0)으로 잡고 y축 값이 증가할수록 우측 아래로 내려간다.

그래서 기존의 알고 있는 틀을 깨야되기 때문에 어려웠다.

 

기억하자 왼쪽 위가 (0,0)이고 오른쪽 그리고 아래로 갈수록 +값으로 증가한다.

 

pygame.KEYDOWN 밑 pygame.K_LEFT / RIGHT / UP / DOWN 을 통해 각 방향키를 누를 때 일정 속도로 움직일 수 있게 두었다.

속도값을 5로 준 모습.

어.. 네모가 완전 정신없이 움직인다.

 

 

각 속도값을 1로 내리고 다시 시도해보니 그래도 괜찮은 속도가 나온다.

 

 

728x90
반응형