5.
遊戲場景資訊
一般資訊:
整個遊戲場景都以左上角為原點(0,0),x座標為橫軸、Y座標為縱軸
不同遊戲會有不同的場景大小,但是場景資訊變數名稱不變都是
1. 貪食蛇(snake):
座標系統
與打磚塊遊戲一樣
遊戲區域
300 * 300 像素
遊戲物件
蛇
- 蛇由一系列正方形構成。每一個正方形的大小是 10 * 10 像素
- 蛇頭顏色是綠色的,而蛇身皆為白色
- 蛇頭初始位置在 (40, 40),而蛇身依序在 (40, 30)、(40, 20)、(40, 10)
- 蛇初始移動方向是向下,每一個影格移動 10 個像素
- 當蛇吃到食物時,蛇身會增長一個
食物
- 食物是 10 * 10 像素大小的正方形,但是其樣貌為紅色圓形
- 食物的位置隨機決定,xy 座標範圍皆為 0 ~ 290,以 10 為一單位決定
以上可參考
https://github.com/LanKuDot/MLGame/blob/master/games/snake/README_zh-TW.md
2.打磚塊(arkanoid):
座標系
使用 pygame 的座標系統,原點在遊戲區域的左上角,x 正方向為向右,y 正方向為向下。遊戲物件的座標皆在物件的左上角,並非中心點。
遊戲區域
200 * 500 像素
遊戲物件
球
- 5 * 5 像素的藍色方形
- 每一影格的移動速度是 (±7, ±7)
- 球會從板子所在的位置發出,可以選擇往左或往右發球。如果在 150 影格內沒有發球,則會自動往隨機兩個方向發球
板子
- 40 * 5 像素的綠色長方形
- 每一影格的移動速度是 (±5, 0)
- 初始位置在 (75, 400)
切球機制
- 球的 x 方向速度會因為接球時板子的移動方向而改變:
- 如果板子與球的移動方向相同,則球的 x 方向速度會增為 ±10,可以一次打掉硬磚塊
- 如果板子不動,則球的 x 方向速度會回復為 ±7
- 如果板子與球的移動方向相反,則球會被打回原來來的方向,速度會回復為 ±7
- 此機制加入在普通難度中。
磚塊
- 25 * 10 的橘色長方形
- 其位置由關卡地圖決定
硬磚塊
- 與磚塊類似,但是紅色的
- 硬磚塊要被打兩次才會被破壞。其被球打一次後,會變為一般磚塊。但是如果被加速後的球打到,則可以直接被破壞
以上可參考
https://github.com/LanKuDot/MLGame/blob/master/games/arkanoid/README_zh-TW.md
3.雙人乒乓(pingpong):
座標系
與打磚塊遊戲一樣
遊戲區域
500 \* 200 像素。1P 在下半部,2P 在上半部
遊戲物件
球
- 5 \* 5 像素大小的綠色正方形
- 每場遊戲開始時,都是由 1P 先發球,之後每個回合輪流發球
- 球由板子的位置發出,可以選擇往左或往右發球。如果沒有在 150 影格內發球,則會自動往隨機一個方向發球
- 初始球速是每個影格 (±7, ±7),發球後每 100 影格增加 1
板子
- 40 \* 30 的矩形,1P 是紅色的,2P 是藍色的
- 板子移動速度是每個影格 (±5, 0)
- 1P 板子的初始位置在 (80, 420),2P 則在 (80, 50)
切球機制
- 在板子接球時,球的 x 方向速度會因為板子的移動而改變:
- 如果板子與球往同一個方向移動時,球的 x 方向速度會增加 3 (只增加一次)
- 如果板子沒有移動,則求的 x 方向速度會恢復為目前的基礎速度
- 如果板子與球往相反方向移動時,球會被打回原來過來的方向,其 x 方向速度恢復為目前的基礎速度
- 切球機制加入在 `NORMAL` 與 `HARD` 難度中。
障礙物
- 30 * 20 像素的矩形
- x 初始位置在 0 到 180 之間,每 20 為一單位隨機決定,y 初始位置固定在 240,移動速度為每影格 (±5, 0)
- 障礙物會往復移動,初始移動方向是隨機決定的
- 障礙物不會切球,球撞到障礙物會保持球的速度
- 障礙物加入在 `HARD` 難度中。
以上可參考
https://github.com/LanKuDot/MLGame/blob/master/games/pingpong/README_zh-TW.md
4.賽奢遊戲(RacingCar)
座標系
使用 pygame 的座標系統,原點在遊戲區域的左上角,x 正方向為向右,y 正方向為向下。遊戲物件的座標皆在物件的中心點。
遊戲區域
800 * 800 像素。
遊戲物件
玩家車子
- 40 * 80 像素大小的矩形
- 每場遊戲開始時,所有玩家的車子會隨機分配至不同車道
- 初始車速是0,最高車速為15,當車子沒有在加速或剎車時將會怠速至0.9~1.2之間。
- 車子顏色:1P:白色; 2P:黃綠色; 3P:粉紅色; 4P:淺藍色。
電腦車子
- 40 * 80 像素大小的矩形
- 車子從畫面上方或下方出現,不會左右移動切換車道,但會在自己的車道內左右晃動。前方有車(不論是電腦還是玩家)會剎車減速,否則不斷加速至最高速
- 每台車最高速度皆不一樣。
- 當遊戲中車子(包含玩家與電腦)數量未超過15輛時,每1.2秒將隨機產生三台車,位置為第123/456/789車道各一。
金幣
- 20 *20像素大小的矩形
- 隨機從畫面上方出現,以5 pixel/frame的速度下降。
- 電腦車子碰到金幣時金幣不會消失。
以上可參考
https://github.com/yen900611/RacingCar