前往
大廳
主題

【 RPG Maker MV】 自製選單(滑鼠點擊判斷與鍵盤操控選項)

蜜糖情人 | 2022-02-21 21:59:13 | 巴幣 114 | 人氣 1286

雖然不是完全不懂語法
不過現在大概跟零基礎沒啥兩樣了XD
上一篇才說不做筆記會忘記
這周末要重寫倉庫番就完全看不懂之前在幹嘛了
有夠糟糕XDD
鍵盤操作很簡單,但滑鼠操作意外要注意的點很多Q_Q


*構想*
1.畫面上有一個選單的按鈕,滑鼠點可以開啟功能選單
2.按ESC可以叫出功能選單
3.鍵盤上/下可選擇要的功能,按下OK執行功能
4.滑鼠點擊第一次可選要的功能,第二次點擊執行功能
5.選單功能1為返回遊戲,功能2為關閉遊戲
6.滑鼠右鍵可直接取消選單功能返回遊戲

*成果*


*事前準備*
1.設一個開關判定自製選單是否正在呼叫
 如果沒有,就要先呼叫選單,如果有,就使用選單

2.使用到的腳本
 SceneManager.exit();
 關閉遊戲視窗

 TouchInput.isPressed()/TouchInput.isCancelled()
 分別是當滑鼠左鍵一下,滑鼠右鍵一下

 $gameVariables.setValue(1, TouchInput.x);
 $gameVariables.setValue(2, TouchInput.y);
 這兩行分別是在滑鼠按下左鍵的時候
 將X,Y值分別存入變數1,2位置
 注意x,y不能大寫
 特別注意的是,滑鼠必須按下,才會改變變數

3.選單會有一個選擇框
 需要一個變數來記錄目前選擇框的位置
 假設我今天是兩個選項
 當變數為1就是選擇框會顯示在第一選項,2就是第二選項

4.滑鼠運作的原理是,抓滑鼠的座標去判斷目前游標位置
 再去轉指定選擇框位置變數
 鍵盤運作原理是,利用上/下去增減選擇框位置變數



*實際製作*
呼叫自製選單
1.選單按鈕(橘框)
1-a 如果選單沒有被呼叫,則畫面上會出現選單按鈕
1-b 如果選單被呼叫,則選單按鈕會消失

2.滑鼠按選單按鈕(桃紅框)
2-a 滑鼠座標範圍,這邊就是抓選單按鈕在地圖上的座標範圍
2-b 當點下滑鼠的時候座標在按鈕範圍內時
  顯示選單功能圖與選擇框圖(圖片順序框要較大)
  並且將選單開關改成on
  等待10框避免連續點擊造成錯誤

3.鍵盤按鍵操作(青藍框)
3-a 若按鈕ESC被按下
3-b 同2-b


控制自製選單
4. 當選單開關為on,也就是選單正被呼叫中時
4-a 選擇框位置為1,也就是一開始就會停在第一個選項
4-b 進入迴圈(藍框)

5. 滑鼠控制部分(綠框)
滑鼠右鍵取消選單返回遊戲
5-a 當滑鼠右鍵按下時,也就是要取消選單功能返回遊戲
  消除選單功能與選擇框圖片
  將選單開關為off
  等待10框避免連續點擊造成錯誤
  從迴圈中離開

滑鼠選擇/執行選項1
5-b 如果滑鼠按下時座標在選項1的範圍內
5-b-1 判斷選擇框位置是否為1
   如果是,運行功能返回遊戲(同2-a)
       並從迴圈中離開
       等待10框避免連續點擊造成錯誤
   如果不是,就宣告選擇框位置為1
5-c 等待10框避免連續點擊造成錯誤

滑鼠選擇/執行選項2
作法基本同上
5-d 滑鼠座標範圍改成選項2範圍
5-d-1 判斷選擇框位置是否為2
   如果是,執行關閉遊戲腳本
       (後面可省,因為已退出遊戲)
   如果不是,宣告選擇框位置為2
5-e 等待10框避免連續點擊造成錯誤

6.鍵盤操作(紫框)
這邊我用若...其他選項一直寫進去
應該可以避開同時按下按鍵的狀況.....吧?
6-a 當按上,選擇框位置-1
  如果選擇框位置小於1,就+2
  也就是說,選擇框只會在2>1>0(+2)=2>1這樣限制住
  等待10框避免連續點擊造成錯誤

6-b 如果不是按上,按下,選擇框位置+1
  如果選擇框位置大於2,就-2
  也就是說,選擇框只會在1>2>3(-2)=1>2這樣限制住
  等待10框避免連續點擊造成錯誤

6-c 如果不是按上、下,按ESC
  執行返回遊戲(同2-a)

7.選擇框顯示與確認(橘框)
我們已經可以控制選擇框位置變數
這邊就可以顯示選擇框在畫面上顯示的位置
滑鼠由於要判斷座標,所以我將執行功能直接寫在上面
按鍵的部分在這邊判斷
7-a 如果選擇框位置變數為1
  將選擇框圖片移動到選項1的座標位置
  如果按下OK鍵
  執行返回遊戲(同2-a)

7-b 如果選擇框位置變數為2
  將選擇框圖片移動到選項2的座標位置
  如果按下OK鍵
  執行退出遊戲(同5-d-1)


最後就是在場景中加入並行劇情
由於我開啟選單的功能是用按鍵ESC,所以要禁用內建ESC功能
再來就是執行剛寫的兩個公用劇情
(如果本來就寫在場景中就沒有這個)


寫到這邊就完結灑花拉~~~!!!


滑鼠在執行的時候,由於我的選單按鍵跟選項1在同樣的位置
基於最上面所說滑鼠必須按下,才會改變滑鼠座標變數
且由於我們為了讓選擇框預設就會停在選項1
所以一開始打開選單時就宣告選擇框位置變數為1
因此就會出現,當我用滑鼠點開選單
之後無論我點哪裡,都會執行選項1

最開始想到的方法是,滑鼠執行完一個動作
在等待的10框後將座標變數歸零
下一次點擊就會重新抓座標
但不知道為什麼就是沒辦法成功自動歸零Orz

最後想到的方法是再多製作一個事件(劇情)
如果滑鼠被按下,會抓滑鼠座標寫入變數
但如果選單功能正在開啟時,過10框變數就會歸零
之所以多一個判斷選單開關的動作
是我想說如果遊戲當中需要座標變數,就不會被歸零影響




以上完成
知道怎麼操控滑鼠座標後可以玩很多東西
之後可能會先把拼圖遊戲(滑鼠拖拉圖片)筆記寫完
再來好好把問答遊戲理順Orz

之後預計在寫一篇研究
1.多分支選單
2.選擇框閃爍
看看還有什麼應用玩法

倉庫番遊戲因為突然要加入返回主選單的功能
本以為不過加個圖進去沒什麼,結果發現要注意的問題還真不少
陷阱會自己跑動,按選單功能時要暫停移動
還有玩家也不能受鍵盤控制選單時移動
搞到最後乾脆全部重寫
想說問答相關遊戲都寫兩次了,這次把倉庫番重寫妥妥不在話下

然後就搞了整個周末差點來不及交差Orz

創作回應

相關創作

更多創作