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

Pygame Python의 탁구 게임

Linda Hamilton
Linda Hamilton원래의
2024-11-27 01:51:10628검색

가져오기

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으로 문의하세요.