建立UI和遊戲玩法的乒乓球克隆
>本教程增強了建立在團結的基本基本克隆,添加了經典的兩個美學,改進的遊戲機制和復古風格的UI。 讓我們升級我們的乒乓球!
>第2部分:Retro Revamp&Enhanced Gameplay
>>本教程建立在先前的乒乓球上。 從Github下載項目或在繼續之前完成第1部分。 還可以使用工作的演示和最終改進的遊戲。
>密鑰改進:
- 經典樣式:進口黑色和白色精靈,對真實復古視覺效果調整單位像素(至64)。將主攝像頭背景更改為黑色,並相應地更新槳和球精靈。使用多個縮放的白色精靈創建一個中央分隔線。
-
增強的碰撞:完善球碰撞處理以計算槳的衝擊角度,從而使彈跳更加現實。 這涉及更新
BallController
腳本的OnCollisionEnter2D
方法以使用launchAngle
>函數。請記住適當地標記玩家和敵人槳。 -
改善了敵人的AI:
使用基於時間的計算,增強響應能力和挑戰。修改 腳本以使用EnemyController
,調整速度和時機以獲得最佳平滑度。 添加邊界以防止AI槳在屏幕上脫離。InvokeRepeating("Move", .02F, .02F)
腳本應在銷毀球後重置敵方槳的位置。BoundsController
復古暫停菜單: - 使用自定義像素字體(如絲線屏幕)創建暫停菜單。包括具有適當功能的“重置”和“主菜單”按鈕。 >腳本管理暫停和恢復,並顯示/隱藏暫停菜單元素。 確保用“ Showonpause”標記暫停菜單元素。 >
UIManager
> >動態主菜單: - 在後台設計帶有模擬AI遊戲的主菜單。 複製主遊戲場景,刪除不必要的元素,並添加標題和“播放”按鈕。使用>和腳本(類似於敵人AI,但對速度和時機進行調整)來控制主菜單中的AI槳。
AutoPlayer
>AutoEnemy
評分系統: 實現一個跟踪播放器和AI得分的評分系統,在UI上顯示它們(使用 - >腳本顯示獲勝者。 切記用“ showonfinish”元素標記遊戲。
PointCounter
GameOver
代碼片段:
(ballcontroller.cs- oncollisionEnter2d&啟動angle)
void OnCollisionEnter2D(Collision2D col) { if (col.gameObject.tag == "Enemy") { float y = launchAngle(transform.position, col.transform.position, col.collider.bounds.size.y); Vector2 d = new Vector2(1, y).normalized; rig2D.velocity = d * speed * 1.5F; } if (col.gameObject.tag == "Player") { float y = launchAngle(transform.position, col.transform.position, col.collider.bounds.size.y); Vector2 d = new Vector2(-1, y).normalized; rig2D.velocity = d * speed * 1.5F; } } float launchAngle(Vector2 ball, Vector2 paddle, float paddleHeight) { return (ball.y - paddle.y) / paddleHeight; }
(eneycontroller.cs-移動)
void Move() { if (ball == null) { ball = GameObject.FindGameObjectWithTag("Ball").transform; } ballRig2D = ball.GetComponent<Rigidbody2D>(); if (ballRig2D.velocity.x > 0) { if (ball.position.y > this.transform.position.y + .5F) { transform.Translate(Vector3.up * speed * Time.deltaTime); } else if (ball.position.y < this.transform.position.y - .5F) { transform.Translate(Vector3.down * speed * Time.deltaTime); } } // ... bounds checking ... }
(uimanager.cs- partial)
// ... other methods ... public void showFinished() { foreach (GameObject g in finishObjects) { g.SetActive(true); } } // ... other methods ...
void Update () { text.text = rightBound.GetComponent<BoundController>().enemyScore + "\t\t" + leftBound.GetComponent<BoundController>().playerScore; }
(gameover.cs)
>void Update () { if(uiManager.playerWon){ text.text = "GAME OVER!\nPLAYER WON!"; } else if(uiManager.enemyWon){ text.text = "GAME OVER!\nENEMY WON!"; } }
記住在AI腳本中調整速度和計時等值以微調遊戲難度。 這種增強的乒乓球可提供更完整,更具吸引力的複古遊戲體驗。 GitHub鏈接(輸入中未提供)將包含完整的項目文件。
以上是建立UI和遊戲玩法的乒乓球克隆的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

該試點程序是CNCF(雲本機計算基礎),安培計算,Equinix金屬和驅動的合作,簡化了CNCF GitHub項目的ARM64 CI/CD。 該計劃解決了安全問題和績效

該教程通過使用AWS服務來指導您通過構建無服務器圖像處理管道。 我們將創建一個部署在ECS Fargate群集上的next.js前端,與API網關,Lambda函數,S3桶和DynamoDB進行交互。 Th

與這些頂級開發人員新聞通訊有關最新技術趨勢的了解! 這個精選的清單為每個人提供了一些東西,從AI愛好者到經驗豐富的後端和前端開發人員。 選擇您的收藏夾並節省時間搜索REL
