Skip to content
chichichi959595Public
forked from hbokmann/Pacman

About

Pacman in Python with PyGame

Resources

Stars

1 star

Watchers

0 watching

Forks

 
 

Latest commit

 

History

60 Commits

Folders and files

Repository files navigation

Pacman - Bomb & Powerups

一個使用 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」(青色)

遊戲規則

  1. 移動 Pacman 吃掉地圖上的所有豆子
  2. 避免接觸鬼魂(除非處於無敵狀態)
  3. 使用炸彈消滅鬼魂或自衛
  4. 道具隨機出現,收集來獲得特殊能力
  5. 吃完所有豆子或撞到鬼魂時遊戲結束

功能

  • ✅ 開始菜單:遊戲說明和操作指南
  • ✅ 改進的資源加載: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 建立時直接從記憶體取用

About

Pacman in Python with PyGame

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages