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

가져오기

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
    • right_paddle.top > 0은 패들 좌표의 상단이 0보다 큰지 확인합니다. Up 키를 클릭할 때 화면 상단에 닿는지 확인합니다.
    • right_paddle.bottom

공의 움직임

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으로 문의하세요.
파이썬의 주요 목적 : 유연성과 사용 편의성파이썬의 주요 목적 : 유연성과 사용 편의성Apr 17, 2025 am 12:14 AM

Python의 유연성은 다중 파리가 지원 및 동적 유형 시스템에 반영되며, 사용 편의성은 간단한 구문 및 풍부한 표준 라이브러리에서 나옵니다. 유연성 : 객체 지향, 기능 및 절차 프로그래밍을 지원하며 동적 유형 시스템은 개발 효율성을 향상시킵니다. 2. 사용 편의성 : 문법은 자연 언어에 가깝고 표준 라이브러리는 광범위한 기능을 다루며 개발 프로세스를 단순화합니다.

파이썬 : 다목적 프로그래밍의 힘파이썬 : 다목적 프로그래밍의 힘Apr 17, 2025 am 12:09 AM

Python은 초보자부터 고급 개발자에 이르기까지 모든 요구에 적합한 단순성과 힘에 호의적입니다. 다목적 성은 다음과 같이 반영됩니다. 1) 배우고 사용하기 쉽고 간단한 구문; 2) Numpy, Pandas 등과 같은 풍부한 라이브러리 및 프레임 워크; 3) 다양한 운영 체제에서 실행할 수있는 크로스 플랫폼 지원; 4) 작업 효율성을 향상시키기위한 스크립팅 및 자동화 작업에 적합합니다.

하루 2 시간 안에 파이썬 학습 : 실용 가이드하루 2 시간 안에 파이썬 학습 : 실용 가이드Apr 17, 2025 am 12:05 AM

예, 하루에 2 시간 후에 파이썬을 배우십시오. 1. 합리적인 학습 계획 개발, 2. 올바른 학습 자원을 선택하십시오. 3. 실습을 통해 학습 된 지식을 통합하십시오. 이 단계는 짧은 시간 안에 Python을 마스터하는 데 도움이 될 수 있습니다.

Python vs. C : 개발자를위한 장단점Python vs. C : 개발자를위한 장단점Apr 17, 2025 am 12:04 AM

Python은 빠른 개발 및 데이터 처리에 적합한 반면 C는 고성능 및 기본 제어에 적합합니다. 1) Python은 간결한 구문과 함께 사용하기 쉽고 데이터 과학 및 웹 개발에 적합합니다. 2) C는 고성능과 정확한 제어를 가지고 있으며 게임 및 시스템 프로그래밍에 종종 사용됩니다.

파이썬 : 시간 약속과 학습 속도파이썬 : 시간 약속과 학습 속도Apr 17, 2025 am 12:03 AM

Python을 배우는 데 필요한 시간은 개인마다 다릅니다. 주로 이전 프로그래밍 경험, 학습 동기 부여, 학습 리소스 및 방법 및 학습 리듬의 영향을받습니다. 실질적인 학습 목표를 설정하고 실용적인 프로젝트를 통해 최선을 다하십시오.

파이썬 : 자동화, 스크립팅 및 작업 관리파이썬 : 자동화, 스크립팅 및 작업 관리Apr 16, 2025 am 12:14 AM

파이썬은 자동화, 스크립팅 및 작업 관리가 탁월합니다. 1) 자동화 : 파일 백업은 OS 및 Shutil과 같은 표준 라이브러리를 통해 실현됩니다. 2) 스크립트 쓰기 : PSUTIL 라이브러리를 사용하여 시스템 리소스를 모니터링합니다. 3) 작업 관리 : 일정 라이브러리를 사용하여 작업을 예약하십시오. Python의 사용 편의성과 풍부한 라이브러리 지원으로 인해 이러한 영역에서 선호하는 도구가됩니다.

파이썬과 시간 : 공부 시간을 최대한 활용파이썬과 시간 : 공부 시간을 최대한 활용Apr 14, 2025 am 12:02 AM

제한된 시간에 Python 학습 효율을 극대화하려면 Python의 DateTime, Time 및 Schedule 모듈을 사용할 수 있습니다. 1. DateTime 모듈은 학습 시간을 기록하고 계획하는 데 사용됩니다. 2. 시간 모듈은 학습과 휴식 시간을 설정하는 데 도움이됩니다. 3. 일정 모듈은 주간 학습 작업을 자동으로 배열합니다.

파이썬 : 게임, Guis 등파이썬 : 게임, Guis 등Apr 13, 2025 am 12:14 AM

Python은 게임 및 GUI 개발에서 탁월합니다. 1) 게임 개발은 Pygame을 사용하여 드로잉, 오디오 및 기타 기능을 제공하며 2D 게임을 만드는 데 적합합니다. 2) GUI 개발은 Tkinter 또는 PYQT를 선택할 수 있습니다. Tkinter는 간단하고 사용하기 쉽고 PYQT는 풍부한 기능을 가지고 있으며 전문 개발에 적합합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

Dreamweaver Mac版

Dreamweaver Mac版

시각적 웹 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경