首頁 >後端開發 >Python教學 >Pygame python 中的乒乓球遊戲

Pygame python 中的乒乓球遊戲

Linda Hamilton
Linda Hamilton原創
2024-11-27 01:51:10687瀏覽

輸入

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)
  • 寬度和高度:遊戲視窗的尺寸。 800px 為寬度,600px 為高度
  • FPS:每秒幀數,控制遊戲的速度和流暢度。
  • PADDLE_WIDTH、PADDLE_HEIGHT:槳葉的尺寸。
  • BALL_RADIUS:球的半徑。
  • WHITE:白色的 RGB 值,用於球拍、球和文字。

製作螢幕

screen=pygame.display.set_mode((WIDTH,HEIGHT))
pygame.display.set_caption("Ping Pong")

您將有一個名為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 中建立矩形(此處用於槳和球)。
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.rect:繪製矩形槳。
  • 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)

這將遍歷 pygame 中可能發生的所有事件,如果其中一個事件正在關閉窗口,則退出 pygame 並關閉視窗。

槳控制

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

偵測按鍵:

  • WS:上下移動左槳。
    • pygame.K_ww
    • pygame.K_ss
  • 向下:上下移動右槳。
    • pygame.K_UP 是向上鍵
    • pygame.K_DOWN 是向下鍵
  • 包含防止槳移出螢幕的檢查。
    • left_paddle.top > 0檢查槳頂部座標是否大於 0。檢查當您單擊 W 時槳是否擊中螢幕頂部。
    • left_paddle.bottom
    • right_paddle.top > 0檢查槳頂部座標是否大於 0。檢查當您單擊向上鍵時槳是否擊中螢幕頂部。
    • 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