Skip to content

Aka2210/3D-Angry-bird

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 

Repository files navigation

3D Angry Bird 🐦

第 05 組 — 憤怒鳥 期末專案

此專案為課程期末專題作品,使用 3D 場景與物理系統實作「憤怒鳥」風格遊戲。


🎮 遊戲執行方式

強烈建議使用打包後的可執行檔遊玩,否則在 Editor 中可能會感覺畫面偏卡。

  • 建置好的執行檔位於 repo 同層的 build/ 資料夾
  • Windows 使用者可直接執行:
    • build/YourGameName.exe(實際檔名依專案為主)

🕹 操作說明(Controls)

基本操作

  • W / A / S / D:移動角色
  • Q:開啟 / 關閉投擲畫面(切換瞄準模式)
  • 滑鼠上下移動:在投擲畫面中調整投擲仰角
  • A / D:在投擲畫面中調整左右投擲方向
  • 左鍵:近距離投擲
  • Alt + 左鍵:遠距離投擲
  • E:靠近桌子時,將當前投擲的鳥 更換為距離圖片最近的鳥
  • ESC:暫停遊戲 / 開啟 Pause Menu

暫停選單功能

按下 ESC 後,可在暫停畫面中:

  1. 查看遊戲規則
  2. 返回關卡選擇頁面
  3. 調整音量
  4. 重新開始此關卡
  5. 繼續遊戲

🐤 憤怒鳥技能(按 R 釋放,部分例外)

特別註明:紅鳥、大紅鳥 不需R 釋放技能。

  • 炸彈鳥

    • 技能:以鳥為中心產生爆炸
    • 效果:範圍內物體受到傷害與物理影響
  • 黃鳥

    • 技能:使鳥以一定速度向下前方俯衝
    • 效果:加強撞擊力與穿透效果
  • 白鳥

    • 技能:投擲後,可讓「下一顆可爆炸的蛋」垂直向下掉落
    • 同時使白鳥本體向上前方彈出
  • 藍鳥

    • 技能:分裂成三隻藍鳥
    • 效果:可同時攻擊多個目標或更大範圍
  • 紅鳥(不須按 R

    • 被丟出後,特效範圍內的物體會 持續扣血並旋轉
  • 大紅鳥(不須按 R

    • 第一個被碰撞到的物體:
      • 血量直接減少 最大血量的 50%

⭐ 關卡分數機制

一般物件

  • 每一幀都會根據「當前速度的平方根」來增加分數

    速度越快,被撞動越劇烈,加的分數越多

小豬(敵人)

  • 小豬死亡後:
    • 分數增加:100 × 體重

星級評分

以「小豬全部死亡時的分數」為基礎:

  • ⭐ 一星:基礎分數 × 3
  • ⭐⭐ 二星:基礎分數 × 4
  • ⭐⭐⭐ 三星:基礎分數 × 5

通關條件

  • 所有小豬皆死亡或墜落 即可判定通關

Bonus 分數

配合課程喜歡加 Bonus 的特色,加入額外加分:

  • 若關卡中「房子」血量歸 0 或整體墜落:
    • 額外增加 3000 分

🧩 遊玩流程說明

  1. 遊戲開始時,預設玩家投擲的是 小紅鳥
  2. 若想更換其他鳥:
    • 找到放置鳥圖片的桌子
    • 走近並靠近想替換的鳥的圖片
    • 按下 E
    • 右上角 UI 會顯示目前選定的鳥種
  3. 選定鳥種後:
    • Q 進入投擲畫面
    • 使用滑鼠上下調整 投擲仰角
    • 使用 A / D 調整 左右投擲方向
  4. 依據情況選擇:
    • 左鍵:近距離拋射
    • Alt + 左鍵:遠距離拋射
  5. 善用各種鳥的技能(R 或自動觸發),讓所有小豬死亡或墜落完成通關。

🧠 Scripts 說明(程式結構概覽)

以下為主要腳本與職責簡述:

  • Birdcommon

    • 作為各種憤怒鳥 Collider 程式的基底
    • 處理鳥高度過低時的刪除邏輯,避免物件落到場景外還一直存在
  • BirdFollow

    • 控制相機在鳥發射後自動切換為跟隨視角(birdFollowCamera
    • 讓玩家可以追蹤飛行中的鳥
  • *Collider 系列

    • 各種鳥的碰撞與技能處理
    • 例:炸彈鳥、黃鳥、白鳥、藍鳥、紅鳥、大紅鳥等的碰撞與觸發行為
  • DrawParabola / Projection

    • 負責投擲拋物線軌跡的計算與呈現
    • 提供瞄準輔助線,讓玩家預測投擲落點
  • Stair

    • 負責角色上下樓梯時的行為與碰撞處理
  • GameManager

    • 控制整體遊戲狀態:
      • 關卡進度
      • 通關 / 失敗條件
      • 分數統計與星級評分
  • Pig / PigDie

    • 小豬的血量、扣血邏輯、死亡反應與加分機制
  • Prop

    • 場景內可破壞 / 可加分物件
    • 處理被撞擊時的物理與分數變化
  • SceneSwitch

    • 負責場景切換(例如:主選單 ↔ 關卡選擇 ↔ 關卡)
  • islandCamera

    • 提供俯視敵人島嶼的視角切換
  • level3Rotate

    • 控制第三關的場景持續旋轉,增加挑戰性與動態感

📌 專案定位

本專案讓我實作了完整一套 3D 遊戲流程,從:

  • 角色與相機控制
  • 物理拋物線與 Raycast
  • 技能系統設計(多種鳥種與不同技能行為)
  • 分數與評分系統
  • 關卡切換與遊戲狀態管理

也實際體會到在遊戲開發中,「遊戲體感」與「規則設計」 必須同步考量,像是投擲手感、爆炸範圍、分數設計與 Bonus 機制,都是需要不斷調整才能讓遊戲好玩又有成就感。


📂 專案結構

3D-Angry-bird/
├── Assets/
│   ├── Scripts/        # 遊戲主要邏輯(鳥、豬、分數、相機、場景控制等)
│   ├── Scenes/         # 關卡與主選單場景
│   ├── Prefabs/        # 鳥、小豬、物件等 Prefab
│   ├── Materials/      # 材質
│   └── UI/             # 遊戲介面、暫停選單等
├── build/              # 打包好的可執行檔(exe)
├── ProjectSettings/
└── README.md

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors