LV. 23
GP 931

【心得】商店選單製作過程-總集篇 (圖超級多注意)

樓主 Mr.JX mrjx
GP9 BP-
※注意:這不是教學文,只是製作過程圖文紀錄
這篇是將5/21~6/7之間在噗浪上寫的「商店選單製作紀錄」做成總集篇
出處是目前還在製作中的長篇新作「無限幻想-啟程的冒險者們」,所以說是打廣告也沒錯
過程中用到的視窗產生RGSS語法有自己另外魔改過,因此拿去和預設RGSS對照會有出入

腦中規劃打成文字檔,雖然八成弄到後面都會偏離最一開始寫的(?)
準備好一份場景的架構語法
先把共通語法扔進去(?)
初步確定視窗顯示的位置和大小
因為要取代掉內建的購物選單,所以先到MAP那邊把場景轉移的類別改掉
測試顯示看看
調查一下事件指令的「交易的處理」是如何傳遞買入物品的代號與資料
先弄個指令做測試
找出是這個全域變數在傳遞
設定顯示該變數
此陣列可得出一個物品內有兩組數值,分別是資料庫的物品、武器、防具類,然後才是物品ID
有這兩項就可以在之後各種處理大搞特搞
因為忘記陣列大小的數值會如何顯示所以查一下
4個內容,所以是1~4不會是0~3
先來顯示看看商品列表的名稱,這部分是照般選單的物品列表那邊的
然後顯示看看
微調OK後,換購買數,單價那些
顯示看看,這邊有調整文字的靠左、靠右顯示
※購買數單價那個數字目前只是用最大文字數下去測版面的,遊戲中不太會真的出現這麼大的數字
確保好最大顯示字數了,改成正常初始顯示的模樣:
進選單前獲得幾個物品來測試看看:
差不多像這樣,乾淨多了:
在更新那邊加入視窗的刷新,不然視窗只會是靜態顯示而已
製作說明欄(第一視窗)的更新語法
同時在視窗產生那邊補上說明欄的更新,好讓選單載入時就顯示第一個項目的說明
一樣測試
順便把左下的持有金前也顯示一下
再測試,這個直接套主選單用過的所以不難
由於玩家每按一次左右鍵=調整購買物數量=物品列表那邊的文字要洗掉重顯示
因此這邊要改變一下結構,避免重新顯示的次數太頻繁+內容物太多導致LAG
增加一個相同大小,但是背景透明的視窗
套入和顯示列表相似的語法,只是省略掉名稱、持有數和單價
把購買數顯示的加入,然後把原本的註解掉
價位部分同理
測試顯示

加入按鍵判定,針對買入選單的左右鍵
同時設定買入數+1或-1時的上下限設定,下限就是0,上限為99-物品持有數
測試執行,還OK,不過這裡發現新的問題
那就是缺少按鍵的CD時間,等於玩家只要輕輕一按,購買數就會暴增且無法控制

因此從視窗的父類別那邊下手,替選項那邊多加個設定
當每按4方向一次時,原本會一直回傳玩家按了哪個鍵的變數
雖然游標移動有做CD時間不讓它瞬間移動,但回傳變數不受影響

更改後,變成回傳變數會和CD時間同步,如此一來就可避免60FPS的時間都在回傳變數,並且和游標的音效同步
※這邊要透過影片才看得出差異
來準備能力值預覽需要的圖片,主要是文字、裝備後較高較低相等這類標記
設定好視窗內容物顯示的基本語法,不過這次不是顯示文字而是另外放圖片上去
因此並沒有用到視窗類別本身的語法
並且安排在視窗2產生後的瞬間執行此顯示
測試顯示,順便初步亮相本作8位主角的行走圖
接下來加上文字和圖標,不過先計算座標看看
如圖所示,偏離預測了,位置需要修正
把能力值高低的圖標x座標稍微往左偏,並且替文字加上每一種的區分
再次測試,順眼多了
感覺行走圖和文字距離有點過近,因此把兩者間的X座標稍作調整
如圖顯示
內容未完,下一樓繼續
9
-
LV. 23
GP 931
2 樓 Mr.JX mrjx
GP12 BP-

開始進行這個選單最難項目之一,能力值預覽
第一步先把全項目轉暗,高低為無,並設定物品項目不處理
和物品說明一樣,在初次顯示、移動項目游標時進行更新
測試看看,不過基本上就是全部轉暗
重頭戲開始,首先配置好9項能力的變數,用來記錄販賣品的能力值
先從武器類開始試做
由於本作的裝備有主武器、副武器設定,因此這裡先設定預覽時要判定要拿主武器還是副武器作比較
接下來要取得預覽對象的能力值,這裡比較長一串
然後判定預覽的裝備是主武器還是副武器
接下來取得的能力值,減少對象裝備的能力值
白話點就是模擬脫下該裝備後的樣子
下一步,能力值加上販賣裝備的能力值
模擬裝上此裝備後,變更的能力值
這邊要特別留意,如果販賣的裝備沒有變動某項能力值,變數內容將會是nil
代表選單中,對應的能力值文字要維持灰色
接下來是判斷裝上此裝備後的能力值,比原本高、低還是不變
因為現有寫法繼續寫下去會變得又臭又長,所以要改用陣列處理
先準備好3組陣列
第一個陣列用來記錄販賣物的能力值,取代被註解掉的那9個
將取得販賣物能力值的部分用陣列取代
計算用的能力值比照辦理
接著取代文字顏色更新部分(紅框為新的,籃框則是原寫法)
拉回前面,在取得角色能力值那邊多補一個真實能力值陣列
數值比大小部分用新寫法取代,本來可能1百多行瞬間縮減為14行解決
測試看看,錯誤(?)
這裡發現中途檢查武器物理還是魔法屬性部分用錯語法
index(值)是用來確認此陣列中的某個值是否存在,並且告知它的陣列編號位置
在這邊的需求是要得知資料庫中我是否有勾選對應的屬性
因此include?(值)會比較符合需求

改寫下去
不過隨後發現這其實不是造成錯誤的主因
因為當角色有未裝備的狀態時,裝備品ID會回傳0
但是資料庫如果用ID0下去查詢,會出現nil,進而導致上述錯誤訊息的出現
因此要多個判定,當ID0時不去查詢資料庫(沒裝備能力值不會有變動所以是OK的)

再次執行測試,已可以對武器類做比較
成功之後對防具類比照辦理
接下來這部分比較複雜,因為我有對物品、武器、防具統合後做出10大類分類
因此名稱那邊會有個%c數字,代表10大類的第幾類
這裡先套用物品選單那邊用過的解碼程序
隨後和武器一樣,判定是否有裝備並且減去能力值

執行測試,一次成功

首先把預覽那邊的最底下挪一點空位出來,將原本的y+=48改成+47
如此一來最底下將會出現一小段空白
準備原始圖檔
並在視窗創建時一併顯示
測試一下顯示位置是否OK
※這其實不是一桿進洞,而是已經調整過幾次只是沒截圖
因為只有武器和裝飾這兩類東西需要用到MAIN和SUB區分,因此在預覽更新開頭加上兩者轉暗
然後在預覽更新的最後加上判定
接下來加上按鍵判定,當玩家按下A鍵時,切換MAIN和SUB的顯示
這裡補充說明,我自定義的視窗是有使用什麼按鍵要另外啟動
因為只有0和1變化(其實好像用True和False也行),所以就不斷的+1然後餘2就能成立

測試顯示,可以對副武器和副裝飾做預覽了

顯示OK後再來是提示宣告其存在
補上先前沒寫的:離開選單時各種物件的釋放(關閉)
準備好提示視窗的大略樣子
細部之後一一寫上

先從離開選單部分開始製作,按鍵判定
呈現的樣子
※其實這一步中間修改不少次,只是沒有截圖不然圖片要多個幾十張出來

為提示視窗部份加上按鍵判定
按下X鍵或是選擇No會回到選單,選Yes則是離開選單回到地圖
這裡有測試不過只看單張圖片看不出來就沒拍了

回到選單時記得要把提示視窗關掉
接下來準備開始製作購買部分
製作計算購買總金額的函式
然後在按鍵判定那邊加上要開哪種視窗的處理
提示視窗顯示那邊稍微做點小改動,但功能不變
然後回到按鍵判定,加上完整的呼叫與操控層變更語法
不過這邊有些重複到了,因此把關閉視窗的共通部分整合一下
測試三種視窗的顯示
最後的購買程序,物品的增加、減少對應金額,以及選擇項目的重置
然後加至按鍵判定那邊,並且處理完後要關閉提示視窗
購買測試
購買後,從物品選單確認物品有取得
購買部分至此完成
雖然還有賣出、交換(物品製作與合成),以及不確定是否要加上的購買後立即裝備
不過那就不在這個紀錄的範疇內了

後日談
交換選單:
販賣選單:

12
-
LV. 46
GP 1k
3 樓 oVo巴爾坦星人 sdgn
GP0 BP-
感覺很用心... 但截圖也太多了 囧
0
-
未登入的勇者,要加入 4 樓的討論嗎?
板務人員:

2673 筆精華,09/04 更新
一個月內新增 5
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】