# 幫我撐10秒
[***專案連結***](https://scratch.mit.edu/projects/620349118/)
## 遊戲規則
1. 選角
2. 控制WASD
3. 打小怪提升角色數值 攻速、跑速、最大護盾、最大血量
4. 三關 打掉BOSS可以進下一關 三關打完挑戰成功
5. 受傷先扣護盾 護盾脫戰隨時間(5s)恢復
6. 護盾用完受傷扣血量 血量歸零遊戲結束
7. 血量只能透過通關回滿或小怪掉落物加最大值時加一
8. 致敬元氣騎士
## 變數意義
- 血量
- 顯示當前血量
- 再過進入新關卡時補至最大血量
- 在非攻擊時觸碰敵人減少
- 獲得道具以增加最大血量
- 攻速
- 顯示當前角色攻擊速度,以更改冷卻時間方式實現
- 獲得道具以增加攻速
- 下限為 、上限為
- 跑速
- 顯示當前角色移動速度,以改變每按鍵移動量實現
- 獲得道具以增加跑速
- 護盾
- 顯示當前護盾量
- 脫戰後隨時間回復
- 獲得道具以增加護盾最大值
- character
- 當前角色編號
- 帶有以下屬性
- C.attackColdDown
- 攻擊冷卻時間,受攻速影響(=2/攻速)
- 冷卻等待時間不偵測攻擊動作
- C.isAttack
- 紀錄是否在攻擊狀態
- C.isMoving
- 紀錄角色是否在移動
- 用於移動造型間的切換
- C.maxHP
- 紀錄角色最大血量
- 獲得道具以增加
- C.maxShield
- 紀錄角色最大護盾
- 獲得道具以增加
- C.model
- 紀錄當前角色造型編號
- C.movingSpeed
- 紀錄角色移動速度
- 受 跑速 影響
- 按下衝刺鍵乘二,減速鍵除二
- C.xSize
- 角色寬度
- C.ySize
- 角色高度
- 帶有以下方法 (method)
- C.checkMax()
- C.checkMin()
- isBlueShow
- 布林值,用於紀錄選取方框是否顯示
- 於選擇角色畫面當游標接近角色時為是,唯且唯若
- map
- 紀錄當前背景編號
- 受等級和房間影響(=等級\*9+房間編號)
- 帶有以下屬性
- M.neglectXLeftDown
- 左側通道的下界
- M.neglectXLeftUp
- 左側通道的上界
- M.neglectXRightDown
- 右側通道的下界
- M.neglectXRightUp
- 右側通道的上界
- M.neglectYDownLeft
- 下側通道的左界
- M.neglectYDownRight
- 下側通道的右界
- M.neglectYUpLeft
- 上側通道的左界
- M.neglectYUpRight
- 上側通道的右界
- M.xMax
- 地圖右界
- M.xMin
- 地圖左界
- M.yMax
- 地圖上界
- M.yMin
- 地圖下界
- 可以使用M.init初始化
- M.init(
xMax, xMin,
xMaxMax, xMaxMin,
xMinMax, xMinMin,
yMax, yMin,
yMaxMax, yMaxMin,
yMinMax, yMinMin,
)
- M.neglectXLeftDown = xMinMin + C.xSize
- M.neglectXLeftUp = xMinMax - C.xSize
- M.neglectXRightDown = xMaxMin + C.xSize
- M.neglectXRightUp = xMaxMax - C.xSize
- M.neglectYDownLeft = yMinMin + C.ySize
- M.neglectYDownRight = yMinMax - C.ySize
- M.neglectYUpLeft = yMaxMin + C.ySize
- M.neglectYUpRight = yMaxMax - C.ySize
- M.xMax = xMax - C.xSize
- M.xMin = xMin + C.xSize
- M.yMax = yMax + C.ySize
- M.yMin = yMin - C.ySize
- 保證上界不小於下界、右界不小於左界
- mapLevel
- 紀錄當前等級(1-3)
- 過關時加一
- mapRoomID
- 紀錄當前房間編號
- 編號:
[1] [2] [3]
[4] [5] [6]
[7] [8] [9]
- 進關固定為4號房
- temp
- tempMove
- 暫存移動鍵造成的移動量
- 送往C.chackMax, C.checkMin做邊界檢查
## TODO
### 角色
- code
- [x] 移動
- [x] WASD
- [x] 上下左右
- [x] 攻擊
- [x] 冷卻
- [x] 造型切換
- [x] 走路造型間
- [x] 攻擊
- [x] 衝刺
- [x] 邊界判定
- [ ] 遇敵
- [ ] 扣血
- [ ] 攻擊
- other
- [ ] 人物圖
- [ ] 走路若干個
- [ ] 攻擊
- [ ] 衝刺
- [ ] 靜止(可以包含在走路造型裡)
- [ ] 武器圖
- [x] 音效
- [x] 攻擊
- [ ] 受傷
- [ ] 移動
- [ ] 護盾被破壞
- [x] 角色數據
- [x] 寬度
- [x] 高度
### 小怪
- code
- [ ] 攻擊
- [ ] 移動
- [ ] 隨機
- [x] 向玩家
- [x] 生成
- [ ] 消失
- other
- [x] 圖片
- [ ] 移動若干個
- [ ] 攻擊
- [ ] 消失
- [x] 音效
- [ ] 攻擊
- [ ] 消失
### BOSS
- code
- [x] 攻擊
- [x] 移動(不移動則免)
- [x] 生成
- [x] 消失
- other
- [x] 圖片
- [ ] 攻擊若干個
- [ ] 移動若干個(不移動則免)
- [ ] 靜止
- [x] 音效
- [ ] 攻擊
- [ ] 受傷
- [ ] 消滅
### 地圖
- code
- [x] 房間切換
- [x] 通關
- other
- [x] 背景圖(九宮格,三層)
- [x] 開門
- [x] 關門
- [x] 背景音樂
- [x] 常駐音樂
- [x] 進關音樂
- [x] 音效
- [x] 進關音效
- [x] 通關音效
- [x] 地圖數據
- [ ] 地圖上下界
- [ ] 地圖左右界
- [ ] 右通道上下界
- [ ] 左通道上下界
- [ ] 上通道左右界
- [ ] 下通道左右界
### 選角畫面
- code
- [ ]
- other
- [x] 背景
- [x] 圖示
- [x] 開始按鈕(一個有t的star)
- [x] 選擇框
- [x] 已選擇框
- [x] 背景音樂
- [x] 音效
- [ ] 選擇音效
- [x] 已選擇音效
- [x] 開始音效
## 初始化