Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

237 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TankMan

遊戲說明

logo

TankMan Python 3.9 MLGame pygame

坦克人(Tank Man),一款經典的雙人對戰遊戲,時間內率先擊殺對手獲勝,否則以分數高者獲勝,除了擊中對手外,破壞遊戲物件,以獲得更高積分。

!注意: 場上資源恢復皆須時間,先到者得,你需要這些補充品以提供前進和射擊的燃油和子彈。

game.gif

Requirements

  • Python==3.9
  • mlgame==10.2.5a0
  • pytmx=3.31

更新說明

  • 0.6.0 版本之後,遊戲為 2~6 人 團隊對抗遊戲
  • 0.7.0 版本之後,坦克和砲管的方向可以分開控制
  • 0.7.1 版本之後,物件尺寸從原來的 50x50 縮小為 25x25,且補給站可被破壞

遊戲簡介:

2~6 位玩家進行團隊對抗賽,GreenTeam 為綠色坦克車,BlueTeam 為藍色坦克車,透過回傳遊戲指令,操控玩家與射擊砲彈,場上會有各類補給站,經過以補給該資源。


畫面說明(2.x版本):

view_ex.png


遊戲細節:

啟動方式:

  • 在命令行輸入命令執行。

遊戲參數設定

  • 在以下命令中,.代表執行的遊戲專案路徑,若.後不輸入參數,則默認使用預設值,即game_config.json內參數值。
# MLGame.py
# Copy and Paste to play battle game with manual
python -m mlgame -f 120 -i ml/ml_play_manual.py -i ml/ml_play_manual.py . --green_team_num 1 --blue_team_num 1 --is_manual "1" --frame_limit 1000

# Copy and Paste to play battle game with AI
python -m mlgame -f 120 -i ml/ml_play.py -i ml/ml_play.py . --green_team_num 1 --blue_team_num 1 --frame_limit 1000
  • green_team_num:選擇數字 1~3,以決定 綠隊 人數。
  • blue_team_num:選擇數字 1~3,以決定 藍隊 人數。
  • is_manual: 輸入 "1" 啟用手動模式,以讓遊戲適合手動遊玩。
  • frame_limit: 輸入數字 30~3000,以決定遊戲的總幀數。
  • sound: 輸入onoff,控制是否播放遊戲音效。
  • 如果在mlgame後加上-1,代表只執行一次遊戲。

遊戲操作:

使用鍵盤

  • 角色移動:方向鍵控制 1P,WASD 鍵控制 2P 的移動和轉彎。
  • 角色射擊:1P 按下M鍵進行射擊,2P 按下F鍵進行射擊。
  • 砲管旋轉:1P 按下ZX鍵左右旋轉,2P 按下QE鍵左右旋轉。
  • 遊戲畫面: 透過I、K、J、L來上下左右移動畫面;透過O、U來放大縮小畫面。
  • 隱藏遊戲資訊:按下H鍵,可隱藏畫面中的遊戲資訊。
  • 遊戲暫停:按下P鍵,可暫停遊戲(mlgame 10.2 後版本才有效)。
  • 遊戲暫停:遊戲 AI 回傳PAUSED指令,可暫停遊戲。

AI控制

  • 藉由遊戲資訊,在ml資料夾,撰寫控制遊戲角色的.py檔。
  • 可參考ml_play.py自動範例程式,撰寫自動遊玩的程式。
  • 可參考ml_play_manual.py手動範例程式,撰寫手動遊玩的程式。

遊戲玩法

  1. 團隊對抗戰 → 時間內殲滅敵對,或高分隊伍獲勝。

過關條件

  1. 團隊對抗戰
    1. 將敵隊全數擊敗。
    2. 高過敵隊積分:
      • 對方失去的生命 * 20分。
      • 每擊中一次牆壁 * 1分。
      • 擊破牆壁 * 5分。

失敗條件

  1. 團隊對抗戰
    1. 生命歸零。
    2. 時間結束,分數較敵隊低。

物件設定:

Tank


  1. 前進、後退速度(8 px)
  2. 車身轉彎角度(45 度)
  3. 砲管旋轉角度(45 度)
  4. 生命機會(3 次)
  5. 燃油(100)
  6. 彈匣(10)

Walls

  1. 生命次數(3)
  2. 透明設定(依照生命次數決定)

補給站

  1. 燃油站

    • 玩家經過補充 30 點燃油,超過 100,則無效。
    • 與玩家或子彈碰撞後消失,30 幀後隨機位置顯示。
  2. 彈藥站

    • 玩家經過補充 5 顆彈藥,超過 10,則無效。
    • 與玩家或子彈碰撞後消失,30 幀後隨機位置顯示。

地圖說明

  • 寬 1000 pixel;高 600 pixel
  • 每格 25 * 25 pixel,可放置一個物件

image sours

sound sours

About

A battle game that uses game AI to compete on the PAIA platform

Topics

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages