切換
舊版
前往
大廳
主題

【教學】UI 實作 - 下

靈魂 | 2020-01-20 19:53:48 | 巴幣 120 | 人氣 292


上次的實作已經將,在Menu會用到的各個Window都建立好了,現在就只差把它放進Scene_Menu裡看看效果,並且建立其他操作,這樣選單畫面就完成啦!


↓我們就從這裡開始說起吧
在上篇已經提過了如何在Scene內使用Window類,那麼現在就把其他的Window也一起生成吧

這樣就一口氣把Window類都生成好了,並且挑整了x、y的位置跟設定

我們來看看現在Scene長成什麼樣子:
超級分身術( ̄ε(# ̄)
此時會發現,無論怎麼按按鍵都沒有反應,而且時間並不會走,選項也沒有閃爍(這裡下方的方框就是選項,目前矩形顯示為開啟,方便查看效果),那是為什麼呢?
因為這些Window類,沒有被調用update,所以不會更新顯示
只要在update的定義內,讓生成的Window物件使用.update的方法就可以了
加上後,時間會跑了,選項也會閃爍了,按鍵也有反應了,但是確認鍵沒效果¯\_(ツ)_/¯
因為還需要定義"選項更新時,所要做的事"才行,什麼按下取消鍵返回地圖畫面、在選項選到物品時按下確認鍵進入物品畫面的事情,都得寫在定義裡面。


update_commend(選項定義):
(寫在Scene_Menu裡面的哪裡都行,個人都會一直往下鋪

並且修改一下update的部分
寫好後,就可以選選項前往其他畫面囉

之所以要寫成:如果選項啟動為開的情況 這樣,是因為除了一般的選單選項外,還有其他的狀態選項需要被操作,如果不用這樣的判斷的話,所寫的update_command定義可是會一直執行的,此時如果"角色狀態選項"已經被啟動了 且按下了確認鍵,那麼究竟是我選了角色、還是我選了物品選項呢?

這裡就在Menu內選第一選項(物品),前往物品畫面試試吧
耶?怎麼Menu的東西都被帶到了物品畫面呢?太詭異了吧(゚Д゚)

還記得上篇說過,如果精靈類不釋放,圖片就會一直跟著,當然生成的Window類也是一樣,只要轉換場景時不釋放他就會卡在那裡擋住畫面,那麼只要在main裡的釋放部分,釋放各個生成的纇即可
這樣去到哪,他們都不會再跟著啦(・∀・)ノ


update_status(角色狀態選項定義):
基本上做的事,就跟update_command(選項定義)差不多,只是面向是角色,所以要把當前選擇的角色帶到下一個畫面去。
而上圖所提到的行動限制,則是指"狀態"裡的限制,在資料庫內可以看到
所以是指,角色擁有某狀態時,狀態中若有限制角色 反覆攻擊敵人、反覆攻擊隊友、無法行動 這三種其中一個,就無法開啟技能畫面。(死亡的角色,是不會施展治癒術的_(:з)∠)_

然後修改一下update的部分:
現在進行角色狀態選項都可以順利前往其他畫面囉,雖然看不見選項閃爍(因為關掉了),但實際上是可操作的。


那麼該輪到選項的效果了,系統預設的選項效果是矩形閃爍,這裡就用簡單的方式去實現效果,選項的游標用抽出的方式表示、角色選項的游標用黑白的方式表示
接著準備材料,一般選項的話,就把各個選項切出來,並且從0~6命名(方便之後使用)
角色選項就…一張黑色的矩形圖片,就這樣,沒什麼特別的。

之後依照選項數量去生成圖片、釋放、定義、更新:
相當懶人的用法( ̄ε(# ̄),畢竟不吃資源所以不太需要寫條件返回,但refresh可不這麼一回事
效果差不多會變成這樣子

現在就只缺個背景,然後把測試用的選項矩形關閉就大功告成了

除了加上地圖背景外,也加上了紀錄的功能,當使用者 使用選項後離開場景,之後再次進入Menu選單時,選項依舊會選在上次的那裡,只要在game_temp內生成參數,然後再紀錄跟使用就可以了,這種功能可以用在很多地方,可以更加流暢的操作UI。
(當技能一多時,使用這種功能真的很方便,不然要選到累死(╬▔皿▔)

還有這裡有個地方需要注意,雖然使用Spriteset_Map.new可以生成背景,但是實際上他是完整的再跑了一次地圖生成,如果當前的地圖很大而且有使用到霧景、天氣、眾多事件,那光是打開Menu就可能要等一陣子了,所以建議尋找其他方式取代這種作法,像是固定圖片背景又或是使用腳本截圖(ScreenShot)當作背景。


最後來看看調整好後的樣子吧


最後附上本次實作的範本:點我
以及驚喜:o((>ω< ))o
除了音樂外,內容物都可以自由使用,不必附註或通知


--那麼下次見~
送禮物贊助創作者 !
0
留言

創作回應

更多創作