[Pygame] 11. 게임오버 화면 추가 및 게임 종료하기

2023. 2. 9. 12:38·Minding's Programming/Pygame
728x90
반응형

목표

  • 공이 바닥에 닿았을 때 게임오버 텍스트 출력하기
  • 텍스트 출력 후 자동으로 게임 종료시키기

펑고게임 코드에 적용시키기

기존 펑고게임 코드에 게임오버 텍스트 및 게임 종료코드를 적용시키고자 한다.

기존코드가 이미 꽤 길어진 편이기에, 추가시킬 부분만 따로 보도록 하겠다.

 

# 게임 오버 텍스트 추가
gameover_font = pygame.font.SysFont('g마켓산스ttfmedium', 80)
gameover_text = gameover_font.render('GAME OVER',True,(255,0,0))

# Gameover 텍스트의 사이즈 가져오기 (화면 가운데 배치시키기 위해)
size_text_width = gameover_text.get_rect().size[0]
size_text_height = gameover_text.get_rect().size[1]

# gameover의 좌표를 화면 가운데 배치
x_pos_gameover = size_bg_width/2-size_text_width/2
y_pos_gameover = size_bg_height/2-size_text_height/2

이전에 배웠던 점수 텍스트처럼 게임오버 텍스트도 폰트를 설정해준다.

게임오버는 'GAME OVER'라는 텍스트가 언제든 동일하기 때문에 굳이 while문 안에 넣을 필요없이 미리 render해도 된다.

 

필자는 GAME OVER를 화면 가운데에 배치하고자 했기 때문에, 다른 이미지 위치를 배치할 때 처럼

text의 사이즈를 변수로 저장한 다음 배경화면의 크기와 계산해 가운데로 배치하도록 좌표를 미리 설정했다.

 

# 공이 바닥에 부딪힐 때
    elif y_pos_ball >= size_bg_height-size_ball_height:
        background.blit(gameover_text, (x_pos_gameover, y_pos_gameover))
        pygame.display.update()
        pygame.time.delay(2000) # 약 2초동안 GAME OVER 화면 유지
        play = False

이전 코드를 살펴보면 공이 벽에 튕기게 하기 위해서 만들었던 코드가 있다.

그 중 바닥에 부딪히는 코드가 있는데, 그 부분의 if문만 고쳐주면 게임 종료가 가능하다.

 

이전에는 공의 방향을 바꿔주는 코드였다면, 이제는 GAMEOVER가 출력되고(blit & display.update())

바로 게임이 종료되면 GAME OVER라는 텍스트를 못 볼수도 있기 때문에 2초 뒤 play=False를 통해

while의 반복이 종료되고 게임이 종료되는 방식이다.

 

시연 영상

 

 

728x90

'Minding's Programming > Pygame' 카테고리의 다른 글

[Pygame] 10. 점수 추가하기  (0) 2023.02.08
[Pygame] 09. 이미지(캐릭터) 객체끼리 충돌하기  (0) 2023.02.07
[Pygame] 08. 이미지 객체 추가 및 키보드로 움직이기  (0) 2023.02.06
[Pygame] 07. 이미지 벽에 닿았을 때 튕기기  (0) 2023.02.05
[Pygame] 06. 키보드와 마우스로 이미지 움직이기  (0) 2023.02.04
'Minding's Programming/Pygame' 카테고리의 다른 글
  • [Pygame] 10. 점수 추가하기
  • [Pygame] 09. 이미지(캐릭터) 객체끼리 충돌하기
  • [Pygame] 08. 이미지 객체 추가 및 키보드로 움직이기
  • [Pygame] 07. 이미지 벽에 닿았을 때 튕기기
Minding
Minding
  • Minding
    Today's Minding
    Minding
  • 전체
    오늘
    어제
    • 울고넘는 딥러닝 (278)
      • Minding's Baseball (57)
        • MLB Statcast (29)
        • 머신러닝으로 홈런왕 예측하기 (3)
        • 야구칼럼 (12)
        • 야구 규칙, 용어 (1)
        • 2022-23 질롱 코리아 (8)
        • 류현진 등판경기 (4)
      • Minding's Programming (185)
        • 프로그래머스 코딩테스트 (21)
        • Knowledge (44)
        • Numpy & Pandas (6)
        • Excel (3)
        • Git (1)
        • Pygame (11)
        • CV (3)
        • Tensorflow tutorial (4)
        • Kaggle and Dacon (4)
        • 에러 코드 (8)
        • FastAPI (8)
        • Airflow (29)
        • Crawling (6)
        • Django (14)
        • AWS (18)
        • Spark (5)
      • Minding's Reading (30)
        • 머신러닝 딥러닝에 필요한 기초 수학 with 파이.. (2)
        • 칼만필터는 어렵지 않아 (11)
        • 밑바닥부터 시작하는 딥러닝 (6)
        • 메이저리그 야구 통계학 2e (8)
        • 논문읽기 (2)
        • 빅데이터를 지탱하는 기술 (1)
      • Minding's Life (5)
        • 주식 (4)
        • 각종 소식 (1)
  • 블로그 메뉴

    • 홈
    • Baseball
    • Programming
    • Reading
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    KBO
    데이터분석
    프로그래머스
    Airflow
    에어플로우
    파이게임
    딥러닝
    KalmanFilter
    mlb stats api
    넘파이
    django python
    칼만필터는어렵지않아
    pygame
    FastAPI
    야구
    질롱코리아
    Python
    머신러닝
    메이저리그
    칼만필터는어렵지않아파이썬
    칼만필터
    데이터 엔지니어
    MLB
    게임개발
    파이썬
    칼만필터는어렵지않아python
    코딩테스트
    AWS
    django
    파이썬게임개발
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Minding
[Pygame] 11. 게임오버 화면 추가 및 게임 종료하기
상단으로

티스토리툴바