• slider image 221
:::

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