백엔드 개발 파이썬 튜토리얼 Pygame Python의 탁구 게임

Pygame Python의 탁구 게임

Nov 27, 2024 am 01:51 AM

가져오기

import pygame
import sys
로그인 후 복사
로그인 후 복사
로그인 후 복사

Pygame은 우리가 게임을 만드는 데 사용하는 모듈입니다. 그래픽, 사운드 등을 위한 도구를 제공했습니다.

sys는 Python 인터프리터와 상호 작용하는 데 도움이 되는 Python 모듈입니다.

초기화

pygame.init()
로그인 후 복사
로그인 후 복사
로그인 후 복사

모든 Pygame 모듈을 초기화하고 사용할 수 있도록 준비합니다.

상수

#dimensions
WIDTH, HEIGHT=800,600
#frame rate
FPS=60
#the paddles at the side of ping pong
PADDLE_WIDTH, PADDLE_HEIGHT=15,90
#the balls radius
BALL_RADIUS=15
#the color of the ball and paddle
WHITE=(255, 255, 255)
로그인 후 복사
로그인 후 복사
로그인 후 복사
  • WIDTH 및 HEIGHT: 게임 창의 크기입니다. 너비가 800px이고 높이가 600px입니다
  • FPS: 초당 프레임 수로 게임 속도와 부드러움을 제어합니다.
  • PADDLE_WIDTH, PADDLE_HEIGHT: 패들의 크기.
  • BALL_RADIUS: 공의 반경
  • WHITE: 흰색에 대한 RGB 값으로 패들, 공, 텍스트에 사용됩니다.

화면 만들기

screen=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Ping Pong")
로그인 후 복사
로그인 후 복사
로그인 후 복사

WIDTH와 HEIGHT가 할당된 Ping Pong이라는 이름의 창이 나타납니다

Ping Pong game in Pygame python

패들과 공 설정

left_paddle=pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

right_paddle=pygame.Rect(WIDTH - 50 - PADDLE_WIDTH, HEIGHT //2- PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

ball=pygame.Rect(WIDTH //2 - BALL_RADIUS, HEIGHT //2 - BALL_RADIUS, BALL_RADUIS *2, BALL_RADIUS *2)
로그인 후 복사
로그인 후 복사

Ping Pong game in Pygame python

Pygame에서 화면의 왼쪽 상단은 (0,0) 좌표를 나타냅니다.

  • pygame.Rect: 파이게임에서 직사각형을 만드는 데 사용됩니다(여기에서는 패들과 공에 사용됨).
pygame.Rect(x, y, width, height)
로그인 후 복사
로그인 후 복사
  • left_paddle: 화면 왼쪽 근처에 위치하며 수직 중앙에 위치합니다.
pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
로그인 후 복사
로그인 후 복사
  1. 먼저 왼쪽 패들을 왼쪽에서 오른쪽으로 50px 위치시킵니다.

  2. 그런 다음 HEIGHT//2 - PADDLE_HEIGHT //2를 수행합니다. 방금 HEIGHT//2를 수행하면 사진과 같이 보일 것이기 때문입니다. 화면 아래로 내려갑니다. 중앙에 위치시키려면 - PADDLE_HEIGHT //2

Ping Pong game in Pygame python

이것이 바로 올바른 패들을 중앙에 배치하기 위해 수행한 작업입니다.

  • right_paddle: 화면 오른쪽 근처에 위치하며 수직 중앙에 위치합니다.
right_paddle=pygame.Rect(WIDTH - 50 - PADDLE_WIDTH, HEIGHT //2- PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
로그인 후 복사
로그인 후 복사
  • 공: 처음에는 화면 중앙에 위치합니다.
ball=pygame.Rect(WIDTH //2 - BALL_RADIUS, HEIGHT //2 - BALL_RADIUS, BALL_RADUIS *2, BALL_RADIUS *2)
로그인 후 복사
로그인 후 복사

공이 중심에 오도록 하려면 반경을 뺍니다.

속도

ball_speed_x=7
ball_speed_y=7
paddle_speed=10
로그인 후 복사
로그인 후 복사

ball_speed_x와 ball_speed_y는 공의 수평 및 수직 속도를 제어합니다.

paddle_speed: 패들의 이동 속도를 제어합니다.

점수 변수

import pygame
import sys
로그인 후 복사
로그인 후 복사
로그인 후 복사
  • left_score 및 right_score: 플레이어의 점수를 추적합니다.
  • 글꼴: 점수 화면에 텍스트를 렌더링하는 데 사용됩니다. None은 기본 글꼴을 사용하며, 글꼴 크기는 55입니다.

모든 것을 그리는 기능

pygame.init()
로그인 후 복사
로그인 후 복사
로그인 후 복사
  • fill((0, 0, 0)): 화면을 검정색(RGB: 0, 0, 0)으로 채웁니다.
  • pygame.draw.lect: 직사각형 패들을 그립니다.
  • pygame.draw.ellipse: 공을 원으로 그립니다(사각형 공으로 둘러싸인).

중심선을 그립니다

#dimensions
WIDTH, HEIGHT=800,600
#frame rate
FPS=60
#the paddles at the side of ping pong
PADDLE_WIDTH, PADDLE_HEIGHT=15,90
#the balls radius
BALL_RADIUS=15
#the color of the ball and paddle
WHITE=(255, 255, 255)
로그인 후 복사
로그인 후 복사
로그인 후 복사
  • 경기장을 구분하기 위해 수직 중앙선을 그립니다.

점수 추첨

screen=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Ping Pong")
로그인 후 복사
로그인 후 복사
로그인 후 복사

두 플레이어의 점수를 렌더링하고 화면에 배치합니다.

화면 업데이트

left_paddle=pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

right_paddle=pygame.Rect(WIDTH - 50 - PADDLE_WIDTH, HEIGHT //2- PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)

ball=pygame.Rect(WIDTH //2 - BALL_RADIUS, HEIGHT //2 - BALL_RADIUS, BALL_RADUIS *2, BALL_RADIUS *2)
로그인 후 복사
로그인 후 복사

최신 변경 사항으로 디스플레이를 업데이트합니다.

pygame.Rect(x, y, width, height)
로그인 후 복사
로그인 후 복사

게임을 무기한으로 실행합니다.

pygame.Rect(50, HEIGHT//2 - PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
로그인 후 복사
로그인 후 복사

파이게임에서 발생할 수 있는 모든 이벤트를 살펴보고 그 중 하나가 창을 닫고 있으면 파이게임을 종료하고 창을 닫으세요.

패들 컨트롤

right_paddle=pygame.Rect(WIDTH - 50 - PADDLE_WIDTH, HEIGHT //2- PADDLE_HEIGHT //2, PADDLE_WIDTH, PADDLE_HEIGHT)
로그인 후 복사
로그인 후 복사

키 누름 감지:

  • WS: 왼쪽 패들을 위아래로 움직입니다.
    • pygame.K_ww
    • 입니다.
    • pygame.K_ss
    • 입니다
  • UPDOWN: 오른쪽 패들을 위아래로 움직입니다.
    • pygame.K_UP은 위쪽 키입니다
    • pygame.K_DOWN은 아래쪽 키입니다
  • 패들이 화면에서 벗어나는 것을 방지하기 위한 검사가 포함되어 있습니다.
    • left_paddle.top > 0은 패들 좌표의 상단이 0보다 큰지 확인합니다. W를 클릭할 때 화면 상단에 닿는지 확인합니다.
    • left_paddle.bottom < HEIGHT는 패들 좌표의 하단이 화면 높이보다 큰지 확인합니다. K를 클릭했을 때 화면 하단에 닿는지 확인하려면
    • right_paddle.top > 0은 패들 좌표의 상단이 0보다 큰지 확인합니다. Up 키를 클릭할 때 화면 상단에 닿는지 확인합니다.
    • right_paddle.bottom < HEIGHT는 패들 좌표의 하단이 화면 높이보다 큰지 확인합니다. 아래쪽 키를 눌렀을 때 화면 하단에 닿는지 확인하려면

공의 움직임

ball=pygame.Rect(WIDTH //2 - BALL_RADIUS, HEIGHT //2 - BALL_RADIUS, BALL_RADUIS *2, BALL_RADIUS *2)
로그인 후 복사
로그인 후 복사

현재 위치에 공의 속도를 더해 공을 움직입니다

상단 및 하단 벽과 공 충돌

ball_speed_x=7
ball_speed_y=7
paddle_speed=10
로그인 후 복사
로그인 후 복사

공이 화면 상단이나 하단에 닿으면 공의 수직 방향이 반전됩니다

패들과 공 충돌

import pygame
import sys
로그인 후 복사
로그인 후 복사
로그인 후 복사

공이 패들과 충돌하면 공의 수평 방향이 반전됩니다.

채점

pygame.init()
로그인 후 복사
로그인 후 복사
로그인 후 복사
  • 공이 범위를 벗어나면 점수를 업데이트합니다.
  • 공을 중앙으로 재설정하고 방향을 반대로 바꿉니다.

타이밍

#dimensions
WIDTH, HEIGHT=800,600
#frame rate
FPS=60
#the paddles at the side of ping pong
PADDLE_WIDTH, PADDLE_HEIGHT=15,90
#the balls radius
BALL_RADIUS=15
#the color of the ball and paddle
WHITE=(255, 255, 255)
로그인 후 복사
로그인 후 복사
로그인 후 복사

게임 실행을 초당 최대 60프레임으로 제한하여 원활한 게임 플레이를 보장합니다.

전체 코드

screen=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Ping Pong")
로그인 후 복사
로그인 후 복사
로그인 후 복사

Ping Pong game in Pygame python

위 내용은 Pygame Python의 탁구 게임의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

HTML을 구문 분석하기 위해 아름다운 수프를 어떻게 사용합니까? HTML을 구문 분석하기 위해 아름다운 수프를 어떻게 사용합니까? Mar 10, 2025 pm 06:54 PM

HTML을 구문 분석하기 위해 아름다운 수프를 어떻게 사용합니까?

파이썬에서 파일을 다운로드하는 방법 파이썬에서 파일을 다운로드하는 방법 Mar 01, 2025 am 10:03 AM

파이썬에서 파일을 다운로드하는 방법

파이썬의 이미지 필터링 파이썬의 이미지 필터링 Mar 03, 2025 am 09:44 AM

파이썬의 이미지 필터링

Python을 사용하여 텍스트 파일의 ZIPF 배포를 찾는 방법 Python을 사용하여 텍스트 파일의 ZIPF 배포를 찾는 방법 Mar 05, 2025 am 09:58 AM

Python을 사용하여 텍스트 파일의 ZIPF 배포를 찾는 방법

Python을 사용하여 PDF 문서를 사용하는 방법 Python을 사용하여 PDF 문서를 사용하는 방법 Mar 02, 2025 am 09:54 AM

Python을 사용하여 PDF 문서를 사용하는 방법

Django 응용 프로그램에서 Redis를 사용하여 캐시하는 방법 Django 응용 프로그램에서 Redis를 사용하여 캐시하는 방법 Mar 02, 2025 am 10:10 AM

Django 응용 프로그램에서 Redis를 사용하여 캐시하는 방법

Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까? Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까? Mar 10, 2025 pm 06:52 PM

Tensorflow 또는 Pytorch로 딥 러닝을 수행하는 방법은 무엇입니까?

NLTK (Natural Language Toolkit) 소개 NLTK (Natural Language Toolkit) 소개 Mar 01, 2025 am 10:05 AM

NLTK (Natural Language Toolkit) 소개

See all articles