Python/Pygame

[Pygame] Python(파이썬)으로 비행기 게임만들기 - (2) 비행기 띄우기

잭피 2022. 12. 7. 23:03

안녕하세요~ 잭피입니다!

파이썬의 pygame 모듈을 이용해서 게임을 만들어볼까요?  

오늘은 비행기게임 - (2) 비행기 띄우기

를 진행해볼게요


import pygame

pygame.init()

size = [500, 700]
screen = pygame.display.set_mode(size)
title = "미사일 게임"
pygame.display.set_caption(title)

clock = pygame.time.Clock() 

###### 문제 1. 이미지를 가져오고 비행기 크기를 조절해보세요 #######
### [코드작성]

###### 문제 2. 이미지를 아래 중앙으로 이동시켜보세요 #######
### [코드작성]

ss_x, ss_y = plane.get_size()
plane_x = round(size[0]/2)  / 2
plane_y = size[1] - 15

black = (0,0,0)
SB = 0
while SB == 0:

    clock.tick(60) 
    
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            SB = 1      

    ###### 문제 3. 이미지를 그려보세요 #######
		### [코드작성]

    pygame.display.flip()
    
# 5. 게임 종료 
pygame.quit()

1. 이미지 가져오기 & 크기 조정하기

# 해당 경로에서 비행기 이미지를 가져옵니다
plane = pygame.image.load("/Users/js/Desktop/수업자료/python/비행기.png").convert_alpha()

# (80,80) 크기로 비행기 크기를 조절합니다
# 숫자를 바꿔보면서 적절한 비행기 크기를 맞춰주세요
plane = pygame.transform.scale(plane, (80, 80)) 

💡 png 형태의 파일은 .convert_alpha()를 추가해줘야 합니다

 

 

2. 이미지를 중앙으로 가져오기

적당한 비행기 크기를 만들었으면 이제 중앙으로 위치해봅시다

# 가져온 이미지의 가로, 세로를 ss_x, ss_y에 저장합니다
ss_x, ss_y = plane.get_size()

# plane_x  = 가로의 중앙값 - 비행기의 중앙값 
plane_x = round(size[0]/2) - ss_x / 2

# plane_y = 세로값 - 비행기의 세로값 - 15(여유를 살짝 주기위한 값)
plane_y = size[1] - ss_y - 15

3. 이미지 그리기

이제 이미지를 그려볼까요?

# 배경색상을 검은색으로 변경합니다
screen.fill(black)

# 비행기 이미지와 위치를 지정합니다
screen.blit(plane, (plane_x, plane_y))

전체 코드

# 2강 - 비행기 띄우기

import pygame

# 1. 게임 초기화
pygame.init()

# 2. 게임창 옵션 설정
size = [500, 700]
screen = pygame.display.set_mode(size)

title = "미사일 게임"

pygame.display.set_caption(title)

# 3. 게임 내 필요한 설정
clock = pygame.time.Clock() # FPS를 위한 변수

plane = pygame.image.load("/Users/js/Desktop/수업자료/python/비행기.png").convert_alpha()
plane = pygame.transform.scale(plane, (80, 80))

# 중앙으로 
ss_x, ss_y = plane.get_size()
plane_x = round(size[0]/2) - ss_x / 2
plane_y = size[1] - ss_y - 15

# 검정색 배경화면 
black = (0,0,0)

# 4. 메인 이벤트
SB = 0
while SB == 0:

    # 4-1. FPS 설정
    clock.tick(60) # 1초에 60번 while문 반복
    
    # 4-2. 각종 입력 감지 
    for event in pygame.event.get():# 키보드나 마우스의 동작을 받아옴
        if event.type == pygame.QUIT: # 게임 종료
            SB = 1
    
    # 4-3. 입력, 시간에 따른 변화
    # 4-4. 그리기
    screen.fill(black)
    screen.blit(plane, (plane_x, plane_y))
    
    # 4-5. 업데이트
    pygame.display.flip()
    
# 5. 게임 종료 
pygame.quit()