시작하기 앞서 이전 내용을 꼭 공부한 후 봐주시길 바랍니다.
캐릭터 이미지 생성하기
이전 배경과 마찬가지로 캐릭터의 이미지를 먼저 만들어주어야 합니다. 해당 글에서는 그림판을 이용하여 캐릭터의 이미지를 만들어주겠습니다.
그림판을 열어 상단 이미지 란에 크기 조정을 키고서 크기 조정의 픽셀을 눌러준 후 가로 세로 비율 유지의 체크를 풀어주고서 가로 70, 세로 70으로 설정을 해줍니다.

이후 설정한 값으로 변한 그림판을 빨강색으로 채워넣어준 후 그것을 자신의 코드가 저장되어 있는 곳의 파일에 character.png 라는 이름으로 저장을 해줍니다.
캐릭터 이미지 불러오기
캐릭터의 이미지를 만들고 저장하였으면 이제는 사용하기 위해서 불러와주어야 합니다.
다시 코드창으로 돌아와 배경 이미지를 불러온 코드의 밑부분부터 이어주도록 하겠습니다.
# 스프라이트(캐릭터) 불러오기
character = pygame.image.load("D:\\Study\\PythonWorkspace\\game\\character.png")
character 이라는 변수를 만들어 pygame.image.load("캐릭터 이미지가 저장되어 있는 폴더 경로") 를 작성하여 저장해줍니다. 이는 해당 폴더 주소에 존재하는 이미지를 불러와 캐릭터에 적용시킨 것과 같습니다.
캐릭터 이미지 크기 구하기
# 캐릭터 이미지의 크기 구하기
character_size = character.get_rect().size # 이미지의 크기를 구해옴
character_width = character_size[0] # 캐릭터 가로 크기
character_height = character_size[1] # 캐릭터 세로 크기
캐릭터의 이미지를 불러왔으면 캐릭터의 크기를 구해주어야 합니다. character_size 라는 변수를 만들어주고 character.get_rect().size 를 이용하여 캐릭터의 크기를 구해 저장을 해줍니다. rect는 Pygame에서 사각형을 표현하는 객체라는 의미를 가지고 있습니다.
character_size 에는 이제 이미지의 가로, 세로의 크기가 저장되어있는데 이를 활용하여 character_width, character_height 라는 변수를 만들어 가로와 세로의 크기를 저장해줍니다.
character_size[0] 에는 가로의 크기가 저장되어있으며 character_size[1] 에는 세로의 크기가 저장되어 있으므로 이 값들을 각각의 변수에 넣어주면 됩니다.
캐릭터 위치 지정하기
캐릭터를 만들고 크기까지 지정을 해두었으면 이제 캐릭터가 시작될 위치를 지정해두어야 합니다. 우리는 캐릭터의 위치를 x 값으로는 중앙, y 값으로는 가장 밑에서 시작하도록 만들 것입니다.
character_x_pos = screen_width / 2 - character_width / 2
# 화면 가로의 절반 크기에 해당하는 곳에 위치
character_y_pos = screen_height - character_height
# 화면 세로 크기 가장 아래에 해당하는 곳에 위치
character_x_pos 라는 변수를 만들어 이전에 만들어 이전에 만들어둔 screen_width 즉 배경의 가로 값에서 2를 나누어준 중앙을 잡아줍니다. 중앙을 구하는 값이라면 이게 끝이지만 우리는 캐릭터의 중앙을 배경의 중앙에 위치시킬 것이기 때문에 캐릭터의 가로 값에 2를 나누어 그것을 빼줍니다. 그러면 캐릭터가 x 값의 중앙에 위치하게 됩니다.
character_y_pos 라는 변수를 만들어 이전에 만들어둔 screen_height 즉 배경의 세로 값을 불러옵니다. 이것 또한 가로값과 마찬가지로 해당 위치라면 y의 가장 끝부분이지만 이것만 써넣는다면 지정된 y값 부분의 밑부분으로 캐릭터가 그려지므로 캐릭터의 y 값을 배경에서 빼주어 그 값을 character_y_pos 에 넣어줍니다.
캐릭터 게임 화면에 그리기
캐릭터의 이미지를 설정하고 위치를 지정하는 등 설정이 끝났으면 마지막으로 만들어진 캐릭터를 화면에 띄워야합니다.
screen.blit(character, (character_x_pos, character_y_pos)) # 캐릭터 그리기
배경을 그려준것 처럼 while 문 안에 screen.blit을 이용해 괄호 안에 (무엇을, (x좌표, y좌표)) 를 넣어주어 실행을 해준다면 캐릭터가 생성되는걸 확인할 수 있습니다.
현재까지 완성된 진행 상황과 진행 코드 확인

import pygame
pygame.init() # 초기화 (반드시 필요)
# 화면 크기 설정
screen_width = 480 # 가로 크기
screen_height = 640 # 세로 크기
screen = pygame.display.set_mode((screen_width, screen_height))
# 화면 타이틀 설정
pygame.display.set_caption("Cheong Game") # 게임 이름
# 배경 이미지 불러오기
background = pygame.image.load("D:\\Study\\game\\background.png") # \\ 말고 / 로도 가능
# 스프라이트(캐릭터) 불러오기
character = pygame.image.load("D:\\Study\\game\\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
# 화면 세로 크기 가장 아래에 해당하는 곳에 위치
# 이벤트 루프
running = True # 게임이 진행중인가?
while running:
for event in pygame.event.get(): # 어떤 이벤트가 발생하였는가?
if event.type == pygame.QUIT: # 창이 닫히는 이벤트가 발생하였는가?
running = False # 게임이 진행중이 아님
screen.blit(background, (0, 0)) # 배경 그리기
screen.blit(character, (character_x_pos, character_y_pos)) # 캐릭터 그리기
pygame.display.update() # 게임화면을 다시 그리기
# pygame 종료
pygame.quit()
'Project > 충돌, 피하기 게임' 카테고리의 다른 글
[Pygame] 적 생성하기, 충돌 처리 (0) | 2022.05.29 |
---|---|
[Pygame] FPS 설정 (0) | 2022.05.28 |
[Pygame] 키보드 이벤트 (0) | 2022.05.27 |
[Pygame] 배경 설정 (0) | 2022.05.24 |
[Pygame] 파이썬을 이용한 간단한 게임 만들기 위한 초기설정, 환경설정 (0) | 2022.05.23 |