一個使用 PyGame 開發的升級版 Pacman 遊戲,融合了炸彈和道具系統。
- 📖 遊戲說明:遊戲開始前顯示完整的操作指南
- 🎮 按鍵提示:清楚展示所有操作方式和遊戲規則
- 🏠 主菜單:按
ENTER 開始遊戲,按 ESC 退出
- 方向控制:左右上下箭頭鍵控制 Pacman 移動
- 炸彈系統:按
Ctrl 放置炸彈,炸彈在 50 幀後爆炸
- 爆炸會消滅範圍內的鬼魂(+50 分)
- 爆炸會傷害無敵狀態下的 Pacman
- 道具系統:
- 星星 (Star):獲得無敵狀態 5 秒,Pacman 快速閃爍彩色
- 冰塊 (Ice):凍結所有鬼魂 5 秒
- 每 8 秒隨機生成一個,場上最多同時 3 個
- 智能幽靈:最多 8 隻幽靈同時出現,每 15 秒自動新增一隻,每隻有隨機移動路徑
- 方向旋轉:Pacman 根據移動方向自動旋轉(上下左右)
- 無敵視效:無敵時快速切換黃、紅、藍、紫、青五種顏色
- 爆炸動畫:炸彈爆炸時的十字形爆炸效果
- 背景音樂
- 吃豆子音效
- 道具音效(星星、冰塊)
- 炸彈爆炸音效
- 吃掉鬼魂音效
- 吃豆子:+1 分
- 吃道具:+1 分
- 炸死鬼魂:+50 分(普通)/ +100 分(無敵狀態下)
- 目標:吃完所有豆子並存活
| 按鍵 |
功能 |
Enter |
開始遊戲 |
Esc |
退出遊戲 |
| 按鍵 |
功能 |
| ⬅️ ➡️ ⬆️ ⬇️ |
移動 Pacman |
Ctrl |
放置炸彈(最多 3 個) |
Enter |
遊戲結束時重新開始 |
Esc |
遊戲結束時退出 |
- Python 3.8+
- PyGame 2.6.1+
# 1. 克隆或下載專案
git clone https://github.com/chichichi959595/Pacman.git
cd Pacman
# 2. 創建虛擬環境
python -m venv venv
.\venv\Scripts\Activate.ps1 # Windows
source venv/bin/activate # Mac/Linux
# 3. 安裝依賴
pip install pygame
# 4. 執行遊戲
python pacman.py
Pacman/
├── pacman.py # 主遊戲檔案
├── README.md # 說明文檔
├── images/ # 遊戲圖片資源
│ ├── pacman.png
│ ├── Blinky.png # 紅色幽靈
│ ├── Pinky.png # 粉紅幽靈
│ ├── Inky.png # 藍色幽靈
│ ├── Clyde.png # 橘色幽靈
│ ├── bomb.png # 炸彈
│ ├── bomb_flash.png # 炸彈閃爍
│ ├── star.png # 星星道具
│ ├── ice.png # 冰塊道具
│ └── explosion_*.png # 爆炸效果
└── sounds/ # 遊戲音效
├── pacman.mp3 # 背景音樂
├── powerup.wav # 道具音效
├── freeze.wav # 冰凍音效
├── eat_ghost.wav # 吃鬼音效
└── bomb_sound.mp3 # 炸彈音效
- 分數顯示:
Score: X Pellets: 已吃/總數 Bombs: 剩餘炸彈數
- 狀態指示:
- 無敵時顯示「INVINCIBLE」(橘色)
- 凍結時顯示「GHOSTS FROZEN」(青色)
- 移動 Pacman 吃掉地圖上的所有豆子
- 避免接觸鬼魂(除非處於無敵狀態)
- 使用炸彈消滅鬼魂或自衛
- 道具隨機出現,收集來獲得特殊能力
- 吃完所有豆子或撞到鬼魂時遊戲結束
- ✅ 開始菜單:遊戲說明和操作指南
- ✅ 改進的資源加載:Path-based 路徑管理和詳細的錯誤處理
- ✅ 道具圖片快取:star / ice 圖片於遊戲啟動時預載並快取,不重複讀取磁碟
- ✅ Pacman 方向旋轉(上下左右)
- ✅ 無敵狀態下的彩色閃爍效果
- ✅ 炸彈放置與爆炸系統
- ✅ 星星和冰塊道具
- ✅ 鬼魂 AI(隨機尋路)
- ✅ 音效和音樂系統(自動降級處理)
- ✅ 爆炸動畫效果
- ✅ 分數計算系統
- Python 3.8+
- PyGame 2.6.1
- pathlib:跨平台資源路徑管理
- Sprite 碰撞檢測:
pygame.sprite.spritecollide
- 事件驅動設計:
USEREVENT 控制鬼魂與道具定時生成
- 時間管理:
clock.tick(10) 固定 10 FPS,POWER_DURATION = 50 幀計時
- 音訊自動降級:
pygame.mixer 初始化失敗時遊戲仍可正常執行
- 無敵顏色預生成:啟動時用
BLEND_RGB_MULT 預先產生 5 種顏色版本,避免每幀重新運算
- 道具圖片快取:star / ice 圖片啟動時預載,
PowerUp 建立時直接從記憶體取用