
在前幾篇裡,我們讓遊戲世界開始「做選擇」(if)、
「承擔後果」(else)、並且「持續發生」(loop)。
但還缺一個東西。
一個讓遊戲世界能「記住剛剛發生什麼」的地方。
這個東西,就是變數。
很多人第一次學程式時,會把變數當成:
- 一個盒子,裡面放數字
- 一個名字,代表某個資料
- 一個可以加減乘除的東西
這些說法沒有錯,但如果你想做的是「遊戲」,那你需要理解的是:
變數不只是資料,而是「遊戲世界的狀態」。
遊戲世界是需要記憶的。
想像你在玩一款動作遊戲:
- 角色有血量
- 敵人有狀態(巡邏、追擊、暈眩)
- 子彈有速度
- 道具有撿過與否
- 任務有完成進度
- 玩家有得分、有死亡次數、有通關紀錄
這些東西不是「一瞬間的事件」,而是「持續存在的狀態」。
而這些狀態,都需要被記住。
記住的方式,就是變數。
變數讓遊戲世界「活得有記憶」。
如果沒有變數,遊戲世界就會像金魚一樣—
每一幀都忘記上一幀發生了什麼。
- 角色每一秒都回到滿血
- 敵人每一秒都重新判斷狀態
- 子彈每一秒都重新設定速度
- 玩家每一秒都忘記自己撿過什麼
這樣的遊戲就會「不自然」,甚至「無法進行」。
你可以這樣理解變數的用途:
- 血量不只是一個數字,也是一種「受傷的狀態」
- 任務進度不只是一個百分比,也是一種「完成的程度」
- 得分不只是一個加法,也是一種「表現的記錄」
- 道具不只是得到/失去,也是一種「世界的改變」
變數不只用來做數學,也是用來記住「發生過的事」。
到目前為止,我們已經有四個核心概念:
- loop:持續發生
- if:做出選擇
- else:承擔後果
- 變數:記住狀態
這四個東西加起來,就能構成一個「有節奏、有反應、有記憶」的遊戲世界。
例如:
- **如果**玩家按住右鍵,角色就往右移動
- **每一幀**都更新角色的位置
- **如果**角色碰到敵人,就扣血
- 血量這個變數就會記住「角色受傷了」
- **如果**血量歸零,就進入死亡狀態(另一個變數)
- **否則**繼續遊戲
這就是一個完整的遊戲行為。
本篇小結:
-變數是遊戲世界的記憶,不只是資料結構
-你先不用知道變數是什麼型別、佔多少記憶體、能不能存檔。你要先知道的是: 變數是讓遊戲世界「記住剛剛發生的事」的方式。
-沒有變數,遊戲就沒有記憶。沒有記憶,就沒有狀態。沒有狀態,就沒有辦法做出好玩的行為。

















