iT邦幫忙

2022 iThome 鐵人賽

DAY 4
2

遊戲概念

相信許多人都有玩過google play內建的whirlybird

不僅操作簡單,也非常殺時間
本篇將會帶您親手用疊積木的方式製作一個可以在Arcade上遊玩的whirlybird精簡版
whirlybird-示範影片-5starGameplay

本篇內容

本篇將會做出地圖設置與基本的角色地面碰撞
效果如下

建立地圖

  • 首先要先建立一張直向的地圖,好讓我們的角色可以在裡面活動
    從場景中拉出一個貼圖地圖設為並進入後面tilemap的編輯模式

  • 先到畫面左下角調整地圖大小
    因為是垂直地圖,所以x軸較窄,y軸較高。
    經過測試,x軸要設成10才能左右貼齊畫面,

  • 至於y軸,就取決於你關卡的長度,這裡用50作為範例。

  • 設定好大小後,要先建立等等會用到的地面貼圖,也就是空島。
    再調整大小的上方有My TilesGallery
    其中My Tiles就是使用自訂的貼圖,Gallery就是使用官方的範例貼圖。
    我自己有畫了貼圖,附在最後的傳送門內,可自行取用。

  • 做為測試,先將最底下一排鋪滿地面。

這麼一來,基本的地圖設置就完成了!

建立角色及重力

  • 與建置場景大同小異,從角色中拉出變數mySprite設為
    進入角色的貼圖編輯模式,將左下方大小設為10x10
    角色貼圖為了方便測試,先以邊框做角色即可。

貼圖設立完成後就可以來處理重力及與地面的碰撞了。

  • 從角色裡拉出將mySprite加速度設為
    此塊積木的作用為賦予角色y軸的重力加速度,後項參數愈高墜落速度愈高。

  • 再設定角色初始位置,拉出角色mySprite的位置設為
    x座標設為至中80,但y座標較特殊,
    因角色的預設位置為地圖最上方,所以要將角色的y座標設到畫面外。
    此坐標系的原點為地圖左上角,示意圖如下。

    經過測試後,發現y座標設為720的角色起始點最能符合y軸高度設為50的地圖,若高度不同需自行用左方的預覽畫面測試。

  • 最後再從場景中拉出鏡頭跟隨角色mySprite使畫面聚焦在角色上就完成了。

角色與地面碰撞彈跳

  • 首先要做的就是偵測角色有沒有採到地板,
    這裡我們使用場景中當角色sprite類別Player重疊貼圖並將其中的貼圖選為剛剛設的地面貼圖。
    若是偵測到角色與地面貼圖重疊就會執行裡面的積木。

  • 當角色與地面重疊後需要彈跳,換句話說要給角色一個向上的速度,
    這裡用將角色的速度設為vx/vy

    • 為了賦予角色一個向上的速度,要將vy(y軸速度)設成負的,原因在上面也解釋過。
  • 至於速度要設成多少可以自行調整,在範例中我設成-100

這麼一來基礎的角色彈跳就達成了

專案傳送門

作者:黃郁鈞

上一篇
Arcade也能學演算法Ouo!? 演算法遊戲(1)
下一篇
Arcade再進化 - 虛擬鍵盤的妙用(1)
系列文
玩game學打code。街機程式設計再進化。微軟Arcade30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言