---
# System prepended metadata

title: Speed Racer Scenario
tags: [遊戲筆記]

---

# Speed Racer Scenario

### 簡易流程圖
![](https://i.imgur.com/OSHhBjY.png)

:::info
極速賽車的遊戲流程有四個階段
* INIT_ROOM
* BETING
* GAMING
* RESULT
:::

在 JsscGameScene，server 會以同步的方式，更新 status 來通知目前遊戲進行到哪個階段
而腳本(Scenario)就是在 GAMING 階段會進行的程序

進入 GAMING 階段時，由 decideScenario 來決定並建立腳本
在 GAMING 期間，server 每秒同步至前端的 statusExpired(倒數秒數) 會輸入至腳本的 update，由 refreshRank 更新目前名次，再由 updateCars 更新全部車子的狀態


### 腳本


| 腳本名稱 | 腳本英文名稱 | 狀態 |
| -------- | --------- | ---- |
| 舊腳本 | Normal |已完成 |
| 劇情反轉 |Reversal|已完成|
| 一路領先 |LeadAllTheWay|尚未製作 |
| 後來居上 |ComeFromBehind|尚未製作|

* **舊腳本**
    `使用原本遊戲的演示方式進行賽車的表演`
    
* **劇情反轉**
    ```
    冠軍車一開始會在較前段的名次，慢慢地退到後段名次，最後一刻使用噴射衝到冠軍
    其他車子會有某一台突然爆炸，並且成為最後一名
    ```
    整個賽程分成四個階段
    

    | 階段   | 時間 |
    | ------ | ---- |
    | Phase1 | 0% ~ 30% |
    | Phase2 | 30% ~ 50% |
    | Phase3 |50% ~ 80%|
    | Phase4 |80% ~ 100%|

    
    冠軍車
    
    | 階段 | 腳本內容 |
    | ---- | -------- |
    | Phase1 |在前三名徘徊|
    | Phase2 |在 5 ~ 7 名間徘徊 |
    | Phase3 |落後到倒數第二名 |
    | Phase4|噴射衝到第一名|

    事故車 (最後一名)
    
    | 階段   | 腳本內容 |
    | ------ | -------- |
    | Phase1~2 |隨機名次變動 |
    | Phase3 |發火爆炸，落到最後一名|
    | Phase4 |一直在最後一名 |

    其餘車輛
    除了亞軍最後會第二名外，都是隨機名次變動

* **一路領先**
    `待補`
* **後來居上**
    `待補`
    
    
:::warning
注意的地方

車子會從螢幕右側持續向左側移動
而終點線會在衝刺開始瞬間，從螢幕左側開始持續往右側移動
當兩台車越過終點線時就當作結束比賽
終點線與車子兩者是獨立移動物件
必要的時候需藉由調整車子 tween 的參數設置，來調整車子到達終點線的時機
:::

###### tags: `遊戲筆記`