從零元開始的電遊設計|第二階段 互動誕生|05 輸入與反應:玩家如何影響世界

更新 發佈閱讀 7 分鐘
raw-image


在前幾篇,我們已經把遊戲世界的「心跳」建立起來,也讓角色能夠在世界裡存在、更新、變化。 

但遊戲如果只有世界自己動,玩家卻什麼都不能做,那就不是遊戲,只是動畫。

 

互動的誕生,就是從「輸入」開始。

 

今天我們要談的不是按鍵名稱、不是 API、不是「按 A 跳躍」這種教科書式的東西。 

而是—玩家輸入到底是什麼?為什麼它是遊戲的靈魂?

 

一、輸入不是按鍵,是「意圖」

 

很多初學者會把「輸入」理解成: 

- 玩家按下左鍵 → 角色往左 

- 玩家按下空白鍵 → 跳躍 

- 玩家按下滑鼠 → 攻擊 

 

這當然沒錯,但這只是表層。

 

真正的輸入,是玩家的意圖。

 

玩家按下左鍵,不是因為他喜歡左鍵,而是因為: 

- 他想移動 

- 他想靠近某個東西 

- 他想躲避危險 

 

輸入是「意圖的表達」,程式只是把意圖翻譯成行為。

 

這個觀念很重要,因為:

「遊戲的手感,就是在翻譯玩家意圖的過程中,盡量不要讓玩家覺得被背叛。」

 

二、輸入 → 解讀 → 行為:三段式互動模型

 

我們把互動拆成三段: 

1. 玩家輸入(Input)

玩家按下某個按鍵、移動滑鼠、觸碰螢幕。

 

2. 遊戲解讀(Interpret)

遊戲判斷: 

「這個輸入代表什麼意圖?」 

「現在能不能執行?」 

「要不要忽略?」 

「要不要排隊?」 

 

3. 遊戲反應(Response)

角色移動、跳躍、攻擊、播放動畫、觸發音效。

 

三、輸入的第一個原則:永遠要有回饋

 

玩家按下按鍵後,如果遊戲沒有任何反應,玩家會覺得:

- 壞掉了 

- 卡住了 

- 延遲了 

- 不知道自己做錯什麼 

 

所以,即使行為不能執行,也要盡量給回饋。

 

例如:

- 攻擊被打斷 → 播放受傷動畫 

- 互動物件太遠 → 顯示提示 

 

這些都是「輸入被接收,但行為無法執行」的回饋。

 

沒有回饋的輸入,就像是壞掉的輸入。

 

四、輸入的第二個原則:輸入不等於行為

 

這是初學者最常犯的錯誤。

 

例如: 

```gdscript

if Input.is_action_pressed("ui_right"):

    position.x += 5

```

 

這段程式碼看起來沒問題,但它把「輸入」直接綁死在「行為」上。 

結果就是: 

- 想加速度?難。 

- 想做滑步?難。 

- 想做衝刺?難。 

- 想做動畫過渡?難。 

- 想做物理碰撞?更難。 

 

因為你把「按鍵」直接等於「移動」。

 

正確的做法應該是:

 

輸入 → 設定狀態 → 狀態決定行為

 

例如: 

```gdscript

var move_direction = 0 

if Input.is_action_pressed("ui_right"):

    move_direction += 1

if Input.is_action_pressed("ui_left"):

    move_direction -= 1

```

 

然後在角色的 `_physics_process` 裡: 

```gdscript

velocity.x = move_direction * speed

```

 

這樣你就能有機會轉換成各種可能情況:

- 加速度 

- 減速度 

- 滑行 

- 衝刺 

- 受傷硬直 

- 冰面滑動 

- 泥地減速 

 

全部都能做,因為你把「輸入」和「行為」分開了。

 

五、輸入的第三個原則:輸入是「狀態」,不是「事件」

 

很多人會把輸入當成事件: 

- 按下 → 做事 

- 放開 → 停止 

 

但遊戲不是事件驅動,而是狀態驅動。

 

玩家按著右鍵不放,這不是一個事件,而是一個持續的狀態。 

遊戲每一幀都要根據這個狀態更新角色。

 

這就是為什麼 Godot 的輸入系統有: 

- is_action_pressed()(持續按壓) 

- is_action_just_pressed()(瞬間按下) 

- is_action_just_released()(瞬間放開) 

 

因為它們對應不同的「意圖」。

 

六、輸入的第四個原則:輸入要能被「覆蓋」

 

什麼意思?

 

例如: 

- 玩家正在走路 → 按下攻擊 → 角色應該停止走路並攻擊 

- 玩家正在攻擊 → 被敵人打到 → 攻擊應該被打斷 

- 玩家正在跳躍 → 落地 → 自動切換成跑步 

 

這些都是「狀態覆蓋」。

 

如果你把輸入直接寫死在行為裡,你就會遇到:

- 動畫卡住 

- 行為互相打架 

- 角色不聽話 

- 手感變得奇怪 

 

所以輸入必須進入「狀態機」,而不是直接驅動行為。

 

 七、輸入的第五個原則:輸入要能被「忽略」

 

例如: 

- 角色被暈眩 → 所有輸入無效 

- 角色在空中 → 不能互動或是對話

- 角色在攻擊後作用力中 → 不能再攻擊 

- 角色在對話 → 不能移動 

 

忽略輸入不是壞事,而是遊戲設計的一部分。

 

「限制,也是一種遊戲設計的語言。」

 

八、今天的結論:輸入是遊戲的靈魂

 

輸入不是按鍵。 

輸入不是事件。 

輸入不是行為。

 

輸入是: 

- 玩家意圖 

- 狀態變化 

- 行為的觸發條件 

- 遊戲手感的核心 

 

只要你能掌握: 

  1. 輸入要有回饋 
  2. 輸入與行為分離 
  3. 輸入是狀態,不是事件 
  4. 輸入要能被覆蓋 
  5. 輸入要能被忽略 

 

你就能做出「手感良好」的遊戲。

留言
avatar-img
瑠雅澄華音的沙龍
3會員
28內容數
以下空白。
2026/02/02
在前幾篇裡,我們讓遊戲世界開始「做選擇」(if)、  「承擔後果」(else)、並且「持續發生」(loop)。 但還缺一個東西。  一個讓遊戲世界能「記住剛剛發生什麼」的地方。 這個東西,就是變數。 很多人第一次學程式時,會把變數當成: - 一個盒子,裡面放數字 
Thumbnail
2026/02/02
在前幾篇裡,我們讓遊戲世界開始「做選擇」(if)、  「承擔後果」(else)、並且「持續發生」(loop)。 但還缺一個東西。  一個讓遊戲世界能「記住剛剛發生什麼」的地方。 這個東西,就是變數。 很多人第一次學程式時,會把變數當成: - 一個盒子,裡面放數字 
Thumbnail
2026/02/01
在前兩篇裡,我們談了 if 和 else。  if 是選擇,else 是後果。  這兩個東西讓遊戲世界能「做出反應」。 但遊戲還缺少一個更根本的東西—持續性。 因為遊戲不是靜止的,也不是你按一下按鈕才動一下的。  遊戲是一個「一直在進行」的世界。
Thumbnail
2026/02/01
在前兩篇裡,我們談了 if 和 else。  if 是選擇,else 是後果。  這兩個東西讓遊戲世界能「做出反應」。 但遊戲還缺少一個更根本的東西—持續性。 因為遊戲不是靜止的,也不是你按一下按鈕才動一下的。  遊戲是一個「一直在進行」的世界。
Thumbnail
2026/01/31
在上一篇裡,我們談到if是遊戲的起點。  因為沒有判斷,就沒有選擇。 但如果只有if,遊戲其實還是不完整。 只有成功的世界,不是遊戲。 想像一個遊戲世界: - 攻擊一定命中  - 跳躍一定成功  - 解謎一定正確  玩家不需要思考‧‧‧
Thumbnail
2026/01/31
在上一篇裡,我們談到if是遊戲的起點。  因為沒有判斷,就沒有選擇。 但如果只有if,遊戲其實還是不完整。 只有成功的世界,不是遊戲。 想像一個遊戲世界: - 攻擊一定命中  - 跳躍一定成功  - 解謎一定正確  玩家不需要思考‧‧‧
Thumbnail
看更多
你可能也想看
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
vocus 慶祝推出 App,舉辦 2026 全站慶。推出精選內容與數位商品折扣,訂單免費與紅包抽獎、新註冊會員專屬活動、Boba Boost 贊助抽紅包,以及全站徵文,並邀請你一起來回顧過去的一年, vocus 與創作者共同留下了哪些精彩創作。
Thumbnail
別讓你的房子,變成家中最大的「閒置資產」 作為一名服務高淨值客戶的私人銀行顧問,我每天的任務只有一個:幫客戶「讓錢滾動」。然而,當我觀察身旁許多同樣育有子女的朋友們,即便他們多半已是職場上的中高階主管,表面上看似光鮮亮麗,有房有車;但實際上,大家都是典型的「夾心世代」。每個月薪水一入帳,扣掉沉重的
Thumbnail
別讓你的房子,變成家中最大的「閒置資產」 作為一名服務高淨值客戶的私人銀行顧問,我每天的任務只有一個:幫客戶「讓錢滾動」。然而,當我觀察身旁許多同樣育有子女的朋友們,即便他們多半已是職場上的中高階主管,表面上看似光鮮亮麗,有房有車;但實際上,大家都是典型的「夾心世代」。每個月薪水一入帳,扣掉沉重的
Thumbnail
一款遊戲的開發,肯定伴隨大大小小的修改和調整。 創作者不能怕改。但問題是,改東西需要花時間。一些看似簡單的改動,背後程式邏輯可能要好幾天,甚至幾星期才能修正。 對於不懂程式的人,有時很難判斷東西好不好修。所以今天就來說一下,對程式來說什麼樣的修正會令我們頭痛呢?   先以一個草莓奶油蛋糕為例
Thumbnail
一款遊戲的開發,肯定伴隨大大小小的修改和調整。 創作者不能怕改。但問題是,改東西需要花時間。一些看似簡單的改動,背後程式邏輯可能要好幾天,甚至幾星期才能修正。 對於不懂程式的人,有時很難判斷東西好不好修。所以今天就來說一下,對程式來說什麼樣的修正會令我們頭痛呢?   先以一個草莓奶油蛋糕為例
Thumbnail
在劇本還在慢慢醞釀時期,遊戲類型還在思考... 想著開發如心動回憶類型... 但若只是單純的選項,過過劇情,似乎有點單調無趣 所以就思索著,要不也乾脆導入橫向走路的玩法,後續搞個紙娃娃 所以先畫了三視圖、也把Spine 重新拿出來耍一耍練練手... 這樣似乎會有趣點,再想想光角色走來走去過劇情,解個
Thumbnail
在劇本還在慢慢醞釀時期,遊戲類型還在思考... 想著開發如心動回憶類型... 但若只是單純的選項,過過劇情,似乎有點單調無趣 所以就思索著,要不也乾脆導入橫向走路的玩法,後續搞個紙娃娃 所以先畫了三視圖、也把Spine 重新拿出來耍一耍練練手... 這樣似乎會有趣點,再想想光角色走來走去過劇情,解個
Thumbnail
2022年底,見了業界內幾位大神,還有幾位傳奇人物 一直想好好搞遊戲,礙於現實面 一直沒有時間跟勇氣執行 於是乎 整理了一些教學小作品後 在play商店先上架 小六壬 猜拳 俄羅斯方塊 也在短時間內,交出一個小DEMO後 想想累積十幾年的能量 也該是從學術,教育者 回歸本心初衷... 這些年來,還
Thumbnail
2022年底,見了業界內幾位大神,還有幾位傳奇人物 一直想好好搞遊戲,礙於現實面 一直沒有時間跟勇氣執行 於是乎 整理了一些教學小作品後 在play商店先上架 小六壬 猜拳 俄羅斯方塊 也在短時間內,交出一個小DEMO後 想想累積十幾年的能量 也該是從學術,教育者 回歸本心初衷... 這些年來,還
Thumbnail
你家小大人是否一樣聽到「馬桶」兩個字,會立馬反射說「不用」或是逃得無影無蹤的呢!學習使用小馬桶是每個小大人成長過程中必經的路程,除了要教導控制的能力外,也是考驗所有大人們的耐心與毅力呢!   
Thumbnail
你家小大人是否一樣聽到「馬桶」兩個字,會立馬反射說「不用」或是逃得無影無蹤的呢!學習使用小馬桶是每個小大人成長過程中必經的路程,除了要教導控制的能力外,也是考驗所有大人們的耐心與毅力呢!   
Thumbnail
交換彼此看到的風景,一起創造改變 再好的願景都必須要有伯樂一同打造,只是下一步該怎麼踏出去? 不只把事情做好,還要好玩,而遊戲化的方式最容易讓人入門且養成習慣,這也是【恆毅力的七堂課】中提到的「迷人的魅力」!
Thumbnail
交換彼此看到的風景,一起創造改變 再好的願景都必須要有伯樂一同打造,只是下一步該怎麼踏出去? 不只把事情做好,還要好玩,而遊戲化的方式最容易讓人入門且養成習慣,這也是【恆毅力的七堂課】中提到的「迷人的魅力」!
Thumbnail
稍早「台北國際電玩展」釋出展場平面圖,過去只要看展場平面圖就能知道本屆精不精彩,現在因為手遊崛起的緣故,感覺「台北國際電玩展」都可以改成「台北手遊電玩展」了。雖說疫情之下能有展覽可以參加是很幸福的事,但不得不說,「台北國際電玩展」的品質已不復過往。
Thumbnail
稍早「台北國際電玩展」釋出展場平面圖,過去只要看展場平面圖就能知道本屆精不精彩,現在因為手遊崛起的緣故,感覺「台北國際電玩展」都可以改成「台北手遊電玩展」了。雖說疫情之下能有展覽可以參加是很幸福的事,但不得不說,「台北國際電玩展」的品質已不復過往。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News