(k ゚∀゚)<今次用到的例子是參考了吉里吉里的KAG說明文件裡的教學,今次主要介紹如何利用KAG在吉里吉里裡製作右鍵選單。
(k ゚∀゚)<吉里吉里預設了右鍵為消除文字圖層的功能,而KAG裡提供了[rclick]設定右鍵功能。
(k ゚∀゚)<右鍵選單的概念其實不是太難,簡單來說,當玩家在主遊戲(主劇本)按下右鍵時,就顯示一個選單,並且主遊戲會暫停,當玩家再次按下右鍵,或許是按下"回到遊戲"等按鈕時,這個選單就會消失,遊戲會繼續下去。
(k ゚∀゚)<實際上我們會準備一個文字圖層,當玩家按下右鍵,我們就把它顯示出來,當玩家再次按右鍵時,我們就把它設定為不顯示。以下是範例。
[rclick call=true target="*rclick" enabled=true]
[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position layer=message1 left=0 top=0 height=480 width=640]
[image storage="bg2" page=fore layer=base]
主內容
[s]
*rclick
[rclick jump=true target="*exit" enabled=true]
[current layer=message1]
[layopt layer=message0 visible=false]
[layopt layer=message1 visible=true]
[er]
[nowait]
[locate x=50 y=70]
[link storage="save.ks"]Save[endlink]
[locate x=50 y=110]
[link storage="load.ks"]Load[endlink]
[locate x=50 y=150]
[link storage="option.ks"]Option[endlink]
[locate x=50 y=190]
[link target=*exit]Return Game[endlink]
[locate x=50 y=230]
[link storage="title.ks"]Return Title[endlink]
[endnowait]
[s]
*exit
[layopt layer=message1 visible=false]
[layopt layer=message0 visible=true]
[current layer=message0]
[rclick call=true target="*rclick" enabled=true]
[return]
[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position layer=message1 left=0 top=0 height=480 width=640]
[image storage="bg2" page=fore layer=base]
主內容
[s]
*rclick
[rclick jump=true target="*exit" enabled=true]
[current layer=message1]
[layopt layer=message0 visible=false]
[layopt layer=message1 visible=true]
[er]
[nowait]
[locate x=50 y=70]
[link storage="save.ks"]Save[endlink]
[locate x=50 y=110]
[link storage="load.ks"]Load[endlink]
[locate x=50 y=150]
[link storage="option.ks"]Option[endlink]
[locate x=50 y=190]
[link target=*exit]Return Game[endlink]
[locate x=50 y=230]
[link storage="title.ks"]Return Title[endlink]
[endnowait]
[s]
*exit
[layopt layer=message1 visible=false]
[layopt layer=message0 visible=true]
[current layer=message0]
[rclick call=true target="*rclick" enabled=true]
[return]
(k ゚∀゚)<由於我們不想影響對話框(message0)的內容,所以會使用另一個文字圖層(message1)來顯示選單。
(k ゚∀゚)<首先用[rclick]設定跳到選單的位置,由於我們希望玩家在關閉選單時能回到原本的遊戲位置,所以我們會用呼叫副程式的方式,即是把call設定為true,在上述的範例裡,當玩家一按下右鍵,劇本就會跳到*rclick。
(k ゚∀゚)<而我們可以把它看成兩部分,前者是用來顯示選單,後者是消除選單並且還原原本的設定。
(k ゚∀゚)<當我們跳到*rclick,一開始就先把右鍵功能修改,設定為用jump方式跳到*exit,而*exit的部分就是還原設定,令玩家再次按下右鍵時能看到原本的模樣,基本上*exit做的東西只是做 *rclick 相反的事,*rclick設定顯示出來的東西就在 *exit裡設定為不顯示,相反地*rclick設定不顯示出來的東西就設定為顯示。
(k ゚∀゚)<為了方便管理,建議各個功能放在不同的ks檔裡,而用[link]或[button]等來連結到那些ks檔。而我們使用到[nowait]來瞬間顯示選單,否則文字會一行行地顯示,並且以[locate]來調整選單上選項的位置。
(k ゚∀゚)<當我們按下右鍵並且跳到 *exit時,我們在還原原本的模樣之餘,記得把右鍵功能也一起還原,之後用[return]就可以返回原本的遊戲位置。
(k ゚∀゚)<這就是最簡單的右鍵選單的製作方法,當然,大家可以因自己的情況而作出調整。
(k ゚∀゚)<咦? 總覺得有點不自然,為什麼今次沒有人問問題......
......我完全不懂你說的話......>( ゚ω゚ s)
(k ゚∀゚)<......如果真的不懂的話,直接複製 *rclick 的東西來用也可以的,你只需要修改選單部分就可以。
(k ゚∀゚)<今次就到這裡,下次再見。
大大,關於rclick是否要建立新檔?rclick.ks?
回覆刪除可以這樣做,建立新檔的話可以方便管理。
回覆刪除當然不建立也不會有任何影響。
大大,請問一下
回覆刪除我在first.ks裡下
*rclick
[call storage="rclick.ks" target=*rclick]
然後再rclick.ks裡下
[image storage="bg0" page=fore layer=base]
[rclick call=true target="*rclick" enabled=true]
[rclick jump=true target="*exit" enabled=true]
[current layer=message1]
[layopt layer=message0 visible=false]
[layopt layer=message1 visible=true]
[er]
[nowait]
[locate x=50 y=70]
[link storage="save.ks"]Save[endlink]
[locate x=50 y=110]
[link storage="load.ks"]Load[endlink]
[locate x=50 y=150]
[link storage="option.ks"]Option[endlink]
[locate x=50 y=190]
[link target=*exit]Return Game[endlink]
[locate x=50 y=230]
[link storage="title.ks"]Return Title[endlink]
[endnowait]
[s]
*exit
[jump storage="first.ks" target=*exit]
之後再到first.ks裡下
*exit
[layopt layer=message1 visible=false]
[layopt layer=message0 visible=true]
[current layer=message0]
[rclick call=true target="*rclick" enabled=true]
[return]
測試會成功叫的出存檔,不過按右鍵回去主內容會卡住無法進行下一段對話
請問大大要建立rclick.ks要怎麼做連結比較好?
謝謝大大
Wgeoseterpka-1987 Richard Gonzalez https://wakelet.com/wake/NzovUBX3UkTSx0Z86mSuf
回覆刪除proserimber