坦克人(Tank Man),一款經典的雙人對戰遊戲,時間內率先擊殺對手獲勝,否則以分數高者獲勝,除了擊中對手外,破壞遊戲物件,以獲得更高積分。
!注意: 場上資源恢復皆須時間,先到者得,你需要這些補充品以提供前進和射擊的燃油和子彈。
- 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 為藍色坦克車,透過回傳遊戲指令,操控玩家與射擊砲彈,場上會有各類補給站,經過以補給該資源。
- 在命令行輸入命令執行。
- 在以下命令中,
.
代表執行的遊戲專案路徑,若.
後不輸入參數,則默認使用預設值,即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
: 輸入on
或off
,控制是否播放遊戲音效。- 如果在
mlgame
後加上-1
,代表只執行一次遊戲。
- 角色移動:方向鍵控制 1P,WASD 鍵控制 2P 的移動和轉彎。
- 角色射擊:1P 按下
M
鍵進行射擊,2P 按下F
鍵進行射擊。 - 砲管旋轉:1P 按下
Z
、X
鍵左右旋轉,2P 按下Q
、E
鍵左右旋轉。 - 遊戲畫面: 透過
I、K、J、L
來上下左右移動畫面;透過O、U
來放大縮小畫面。 - 隱藏遊戲資訊:按下
H
鍵,可隱藏畫面中的遊戲資訊。 - 遊戲暫停:按下
P
鍵,可暫停遊戲(mlgame 10.2 後版本才有效)。 - 遊戲暫停:遊戲 AI 回傳
PAUSED
指令,可暫停遊戲。
- 藉由遊戲資訊,在
ml
資料夾,撰寫控制遊戲角色的.py
檔。 - 可參考
ml_play.py
自動範例程式,撰寫自動遊玩的程式。 - 可參考
ml_play_manual.py
手動範例程式,撰寫手動遊玩的程式。
- 團隊對抗戰 → 時間內殲滅敵對,或高分隊伍獲勝。
- 團隊對抗戰
- 將敵隊全數擊敗。
- 高過敵隊積分:
- 對方失去的生命 *
20
分。 - 每擊中一次牆壁 *
1
分。 - 擊破牆壁 *
5
分。
- 對方失去的生命 *
- 團隊對抗戰
- 生命歸零。
- 時間結束,分數較敵隊低。
- 前進、後退速度(8 px)
- 車身轉彎角度(45 度)
- 砲管旋轉角度(45 度)
- 生命機會(3 次)
- 燃油(100)
- 彈匣(10)
- 生命次數(3)
- 透明設定(依照生命次數決定)
-
燃油站
- 玩家經過補充 30 點燃油,超過 100,則無效。
- 與玩家或子彈碰撞後消失,30 幀後隨機位置顯示。
-
彈藥站
- 玩家經過補充 5 顆彈藥,超過 10,則無效。
- 與玩家或子彈碰撞後消失,30 幀後隨機位置顯示。
- 寬 1000 pixel;高 600 pixel
- 每格 25 * 25 pixel,可放置一個物件