在開始之前,您可以在itch.io上查看遊戲
核心要點
Pong遊戲分析
Pong是最早的電子遊戲之一,也是第一個成功的商業遊戲。當Pong首次創建時,開發人員很可能在代碼邏輯方面遇到了困難,但是,如今,您可以通過一個方法調用、碰撞器和精靈來製作一個簡單的雙人Pong遊戲。一旦決定製作單人Pong遊戲,Pong的製作難度就會增加。在本教程中,我們將創建Pong的基本遊戲玩法,並分解一個非常簡單的AI替代方案,該方案仍然增加了遊戲價值。
我們必須問,Pong遊戲玩法的核心要素是什麼?以下是對此問題的答案列表:
有了這個列表,我們就可以開始編寫遊戲程序了。
請注意,任何與遊戲對象的位置、旋轉、縮放等相關的數字都是相對的,可能需要根據您的特定設置進行更改。
設置遊戲
既然我們已經分析了Pong的基本原理,我們就可以開始設置遊戲了。打開Unity並創建一個新的2D項目。編輯器打開後,將游戲屏幕的縱橫比設置為4:3。我們使用4:3是因為這是最常見的屏幕比例之一,並且是最接近標準比例的比例之一。在“資源”面板中,創建四個名為“腳本”、“精靈”、“預製件”和“材質”的文件夾。這些文件夾將用於保存我們所有的遊戲資源。
下載遊戲所需圖像並將其添加到“精靈”文件夾(可以通過拖放操作完成)。我們剛剛添加的圖像將是遊戲中使用的精靈(交互式遊戲對象)。
我們需要更改精靈的每像素單位,以便它們符合標準。我通常使用每像素單位64個像素,因為這會使大多數精靈看起來清晰乾淨,並保持其相對大小。您可以將每像素單位視為在Unity編輯器中分配在1×1空間中的像素密度。
讓我們將正方形的每像素單位設置為64,並將圓形的每像素單位設置為128。我們可以繼續將這三個圖像添加到層次結構面板中。
現在我們需要為每個資源命名並設置它們的初始屬性和標籤。您可以將藍色塊命名為“Player”,並將玩家的x位置設置為6,其x縮放比例設置為0.2。
我們需要創建一個標籤來將球拍遊戲對象與其他遊戲對象分開。從廣義上講,您可以將標籤視為遊戲對象的類別。單擊“未標記”(位於玩家名稱下)並選擇“添加標籤”。創建一個名為“Paddle”的新標籤,重新選擇玩家遊戲對象並將它的標籤設置為Paddle。
將紅色塊命名為“Enemy”。將敵人的x位置設置為-6,其x縮放比例設置為0.2。使敵人遊戲對象的標籤為Paddle。
將灰色圓圈命名為“Ball”,然後創建一個名為“Ball”的新標籤。確保將球遊戲對象的標籤設置為Ball。
(以下步驟,由於篇幅限制,僅提供步驟概述和關鍵代碼片段,詳細代碼請參考原文或自行補充)
添加玩家輸入
創建一個名為“PlayerController”的C#腳本,並添加以下代碼(控制玩家球拍的移動):
public float speed = 10; public float topBound = 4.5F; public float bottomBound = -4.5F; void FixedUpdate () { float movementSpeedY = speed * Input.GetAxis("Vertical") * Time.deltaTime; transform.Translate(0, movementSpeedY, 0); // ... (边界限制代码) }
球碰撞
創建一個名為“Bounce”的Physics2D材質,設置其彈性為1,摩擦力為0。將Circle Collider 2D和Rigidbody 2D添加到Ball遊戲對象,並將材質設置為“Bounce”。
邊界碰撞
創建四個空遊戲對像作為邊界(LeftBound, RightBound, TopBound, BottomBound),添加Box Collider 2D並設置其屬性。創建一個名為“BoundController”的腳本,用於檢測球與邊界碰撞並銷毀球。
敵人AI
創建一個名為“EnemyController”的腳本,控制敵人的球拍移動,使其跟隨球。
public float speed = 1.75F; Transform ball; Rigidbody2D ballRig2D; void FixedUpdate () { ball = GameObject.FindGameObjectWithTag("Ball").transform; ballRig2D = ball.GetComponent<Rigidbody2D>(); // ... (根据球的位置移动敌人的代码) }
生成球
創建一個空遊戲對象“BallSpawner”,並創建一個名為“BallSpawnerController”的腳本,用於在球消失時重新生成球。
添加基本文本
創建一個UI Text對象,顯示遊戲說明。
結論
您現在已經在Unity2D中成功創建了一個基本的單人Pong克隆。為了獲得更多練習,嘗試思考改進遊戲的方法——例如,為球添加加速度(擊球次數越多,球的速度越快)、為球拍添加慣性、通過增加敵人的速度來添加難度級別等等。
(FAQ部分由於篇幅過長,此處省略。原文已包含詳細的FAQ解答)
以上是復古革命:建立一個統一的乒乓球的詳細內容。更多資訊請關注PHP中文網其他相關文章!