레이싱 게임 만들기 2 - 플레이어 자동차 만들기
페이지정보
내용
레이싱 게임 만들기 2
- 플레이어 자동차 만들기
플레이어가 사용할 자동차를 만들어보자.
앞선 강좌에서 자동차를 클래스를 만들어서 자동차를 원하는 만큼 생성할 수 있었다.
https://www.jbmpa.com/pygame/14
플레이어 자동차도 같은 클래스를 사용하여 만든다.
다만 플레이어 자동차를 구분해주기 위해 load_car() 메서드의 parameter를 변경하고, 플레이어 호출 코드를 추가해준다.
1. 플레이어 자동차 생성을 위해 load_car() 메서드 변경
def load_car(self, p = ""):
# 이미지 크기 조절 - 이미지마다 크기가 다 다르므로 가로 세로 비율 유지하면서 변경
self.image = pygame.transform.scale(self.image, (carwidth, carheight))
# 생성 위치 - 스크린 크기 안에서 랜덤으로 x 좌표 생성. y 좌표는 스크린 밖 위에 생성
# STAGE에 따른 속도 변화, STAGE가 높아짐에 따라 자동차의 속도도 빨라진다. |
2. 플레이어 자동차 생성하기
main() 함수 안에 플레이어 자동차를 생성하는 코드를 작성한다.
def main(): ......
clock = pygame.time.Clock()
# 플레이어 자동차 생성
...... ...... |
3. 플레이어 자동차 스크린에 그리기
게임 루프안에 플레이어 자동차를 그려주는 코드를 작성한다.
플레이어는 키보드로 움직여야 하기 때문에 그려주고, 이동하고, 스크린 화면 벗어났는지 체크하는 메서드를 실행해줘야 한다.
...... ...... while playing: ...... ...... ''' 게임 코드 작성 '''
# 플레이어를 스크린에 표시 및 화면 밖으로 못 벗어나게 하기 ...... ...... |
4. 플레이어 자동차 조작하기
키 이벤트를 이용하여 플레이어 자동차를 조작하는 코드를 작성한다.
...... ...... while playing:
# 화살표 키를 이용해서 플레이어의 움직임 거리를 조정해준다. if event.key == pygame.K_DOWN:
if event.type == pygame.KEYUP: if event.key == pygame.K_DOWN:
...... ...... |
결과
충돌 코드를 넣지 않으면 플레이어 자동차와 다른 자동차들은 서로 겹쳐진다.
스크린에서 이미지는 blit() 한 순서대로 보여진다. 따라서 플레이어가 밑에, 다른 자동차들이 위에 겹쳐지게 된다.
5. 플레이어 자동차와 다른 자동차 충돌 감지
플레이어 자동차와 다른 자동차들의 충돌을 감지하여 튕겨나가게 하는 코드를 작성한다.
코드의 위치는 다른 자동차들이 도로위에서 움직이게 하는 코드 아래에 작성한다.
...... ...... while playing: ...... ......
# 다른 자동차들 도로위에 움직이기 # 화면 아래로 내려가면 자동차를 다시 로드한다.
# 플레이어와 다른 차량 충돌 감지
# 위 아래 튕김 ...... ...... |
결과