使用Pygame在Python中建立Pong遊戲


Python 是一種動態程式語言,提供了多種可能性,包括遊戲開發。Pygame 是一個廣泛使用的 Python 庫,它為開發者提供了建立 2D 遊戲的工具包。在本文中,我們將深入探討使用 Python 和 Pygame 建立經典 Pong 遊戲的過程。Pong 是一款簡單但引人入勝的遊戲,圍繞著兩個球拍和一個球展開。玩家透過將球擊打到對手球拍的後面來得分。透過遵循本指南中概述的步驟,您將深入瞭解設定開發環境、初始化遊戲、建立遊戲物件、實現遊戲邏輯以及直觀地渲染遊戲元素。開始這段激動人心的旅程,使用 Python 和 Pygame 的強大功能來建立您自己的 Pong 遊戲。

步驟 1:匯入所需的庫

在此步驟中,我們匯入構建 Pong 遊戲所需的必要的 Python 和 Pygame 庫。庫是預先編寫好的程式碼集合,它們提供有價值的類和函式,可以加快開發過程。

透過新增以下程式碼行匯入必要的庫,包括 Pygame

import pygame
from pygame.locals import *
import sys

以下是每個庫的作用

Python 的主要遊戲開發庫稱為 pygame。它提供了各種用於管理遊戲圖形、輸入事件、音樂和其他元素的工具。

pygame.locals:此模組提供表示事件和鍵碼的有用常量。這些常量簡化了處理遊戲中的使用者輸入(例如鍵盤和滑鼠事件)的操作。

sys:此模組允許與 Python 執行時環境互動。它對於優雅地退出遊戲非常有用。

在此示例中,我們已成功匯入所需的庫,現在可以繼續進行遊戲開發過程。

步驟 2:初始化遊戲

在此步驟中,我們初始化 Pygame 並設定遊戲視窗,我們的 Pong 遊戲將在此視窗中顯示。

pygame.init()

# Define the window dimensions
window_width = 800
window_height = 400

# Create the game window
window = pygame.display.set_mode((window_width, window_height))
pygame.display.set_caption("Pong Game")

執行此程式碼時,Pygame 將被初始化,從而使其可以在遊戲中使用。將建立一個遊戲視窗,其寬度為 800 畫素,高度為 400 畫素。視窗的標題標記為“Pong Game”以進行識別。但是,重要的是要注意,視窗最初沒有任何遊戲元素;需要額外的程式碼才能在視窗中繪製物件並實現遊戲功能。

步驟 3:建立遊戲物件

在此步驟中,我們將建立將在我們的 Pong 遊戲中使用的球拍和球。這些專案將作為矩形出現在遊戲視窗上。

首先,我們定義將用於球拍和球的顏色。在本例中,我們使用黑色和白色。

# Define the colors
black = (0, 0, 0)
white = (255, 255, 255)

接下來,我們指定球拍的尺寸。在此示例中,球拍寬度設定為 10 畫素,球拍高度設定為 60 畫素。

# Paddle dimensions
paddle_width = 10
paddle_height = 60

現在,我們使用 pygame.Rect() 函式建立球拍。此函式接受四個引數:矩形的 x 座標、y 座標、寬度和高度。對於左側球拍 (paddle1),我們將 x 座標設定為 50,y 座標設定為 150。對於右側球拍 (paddle2),我們將 x 座標設定為 window_width − 50 − paddle_width 以將其放置在視窗的右側。

# Create the paddles
paddle1 = pygame.Rect(50, 150, paddle_width, paddle_height)
paddle2 = pygame.Rect(window_width - 50 - paddle_width, 150, paddle_width, paddle_height)

pygame.Rect() 函式用於建立球體物件。透過將其 x 和 y 座標指定為視窗寬度和高度的一半減去 10,我們將其放置在遊戲視窗的中心。球的高度和寬度均為 20 畫素。以下是如何建立球的示例

示例

# Create the ball
ball = pygame.Rect(window_width // 2 - 10, window_height // 2 - 10, 20, 20)

輸出

提供的示例程式碼建立了兩個球拍和一個球。球拍位於遊戲視窗的左側和右側,而球位於中心。可以根據所需的設計和遊戲玩法調整球拍和球的尺寸和位置。以下是遊戲物件的直觀表示

------------------------------
|         |                |
| paddle1 |                |
|         |                |
------------------------------
|                          |
|                          |
|         ball             |
|                          |
|                          |
------------------------------
|         |                |
| paddle2 |                |
|         |                |
------------------------------

我們 Pong 遊戲中的遊戲物件具有不同的視覺表示。球拍由矩形表示,填充為清晰的白色。另一方面,球被描繪成一個光滑的白色橢圓形。一旦我們繼續實現顯示我們激動人心的遊戲的程式碼,這些視覺上吸引人的遊戲物件將在遊戲視窗上巧妙地呈現。

步驟 4:實現遊戲邏輯

在此步驟中,我們將新增遊戲邏輯來控制球拍的移動、更新球的位置以及處理碰撞檢測。

這是一個示例程式碼

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    # Moving the paddles
    keys = pygame.key.get_pressed()
    if keys[K_w] and paddle1.y > 0:
        paddle1.y -= 5
    if keys[K_s] and paddle1.y < window_height - paddle_height:
        paddle1.y += 5
    if keys[K_UP] and paddle2.y > 0:
        paddle2.y -= 5
    if keys[K_DOWN] and paddle2.y < window_height - paddle_height:
        paddle2.y += 5

    # Moving the ball
    ball.x += ball_speed_x
    ball.y += ball_speed_y

    # Ball collision with paddles
    if ball.colliderect(paddle1) or ball.colliderect(paddle2):
        ball_speed_x *= -1

請注意,隨著遊戲視窗更新並連續顯示球拍和球的移動,玩家可以互動並觀看碰撞檢測的實際效果。隨著遊戲的進行,將可以看到球拍和球的位置和方向是如何變化的。

步驟 5:繪製遊戲物件

在實現遊戲邏輯後,透過在遊戲迴圈中新增以下程式碼來在遊戲視窗上繪製遊戲物件

# Clear the screen
window.fill(black)

# Draw the paddles
pygame.draw.rect(window, white, paddle1)
pygame.draw.rect(window, white, paddle2)

# Draw the ball
pygame.draw.ellipse(window, white, ball)

# Update the display
pygame.display.update()

在此遊戲迴圈中,此程式碼段確保遊戲視窗已清除之前的內容,併為更新的遊戲物件做好準備。它透過用黑色填充螢幕來實現這一點。

接下來,使用 pygame.draw.rect() 函式將球拍繪製為白色矩形。此步驟直觀地表示遊戲視窗中球拍的位置和尺寸。

最終的輸出如下所示:

結論

總之,使用 Pygame 在 Python 中建立 Pong 遊戲使您可以深入瞭解遊戲開發並探索諸如遊戲迴圈、事件處理、碰撞檢測和圖形渲染之類的基本概念。透過遵循本文中概述的步驟,您可以構建 Pong 遊戲的基本版本,玩家可以在其中控制球拍來回擊球。

更新於:2023年11月8日

2K+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告