雖然不是完全不懂語法
不過現在大概跟零基礎沒啥兩樣了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