---
tags: 2022 iThome 鐵人賽
title: 9/19 Arcade再進化-空島跳躍者(1)
AUTHOR: 黃郁鈞
---
# Arcade再進化
## 空島跳躍者
### 遊戲概念
> 相信許多人都有玩過google play內建的whirlybird
> 
> 不僅操作簡單,也非常殺時間
> 本篇將會帶您親手用疊積木的方式製作一個可以在Arcade上遊玩的簡單版whirlybird
> [whirlybird-示範影片-5starGameplay](https://www.youtube.com/watch?v=7B6_Q1FghvA)
### 本篇內容
本篇將會做出地圖設置與基本的角色地面碰撞
效果如下

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


- 先到畫面左下角調整地圖大小
因為是垂直地圖,所以x軸較窄,y軸較高。
經過測試,x軸要設成10才能左右貼齊畫面,
- 至於y軸,就取決於你關卡的長度,這裡用50作為範例。

- 設定好大小後,要先建立等等會用到的地面貼圖,也就是空島。
再調整大小的上方有`My Tiles`與`Gallery`,
其中`My Tiles`就是使用自訂的貼圖,`Gallery`就是使用官方的範例貼圖。
我自己有畫了貼圖,附在最後的傳送門內,可自行取用。
- 做為測試,先將最底下一排鋪滿地面。

這麼一來,基本的地圖設置就完成了🎊
### 建立角色及重力
- 與建置場景大同小異,從角色中拉出`變數mySprite設為`
進入角色的貼圖編輯模式,將左下方大小設為10x10
角色貼圖為了方便測試,先以邊框做角色即可。


貼圖設立完成後就可以來處理重力及與地面的碰撞了。
- 從角色裡拉出`將mySprite加速度設為`
此塊積木的作用為賦予角色y軸的重力加速度,後項參數愈高墜落速度愈高。
- 再設定角色初始位置,拉出`角色mySprite的位置設為`
x座標設為至中80,但y座標較特殊,
因角色的預設位置為地圖最上方,所以要將角色的y座標設到畫面外。
此坐標系的原點為地圖左上角,示意圖如下。

經過測試後,發現y座標設為720的角色起始點最能符合y軸高度設為50的地圖,若高度不同需自行用左方的預覽畫面測試。
- 最後再從場景中拉出`鏡頭跟隨角色mySprite`使畫面聚焦在角色上就完成了。

### 角色與地面碰撞彈跳
- 首先要做的就是偵測角色有沒有採到地板,
這裡我們使用場景中`當角色sprite類別Player重疊貼圖`並將其中的貼圖選為剛剛設的地面貼圖。
若是偵測到角色與地面貼圖重疊就會執行裡面的積木。
- 當角色與地面重疊後需要彈跳,換句話說要給角色一個向上的速度,
這裡用`將角色的速度設為vx/vy`
- 為了賦予角色一個向上的速度,要將`vy`(y軸速度)設成負的,原因在上面也解釋過。
- 至於速度要設成多少可以自行調整,在範例中我設成`-100`

這麼一來基礎的角色彈跳就達成了🎉!
[專案傳送門✈️](https://makecode.com/_KukPwiAoaH2K)
###### edit by hua