2011年10月8日星期六

KAG教學(應用篇)---右鍵選單(基礎篇)

(建議在閱讀本篇教學之前,請先閱讀KAG教學---分歧,選項(1)KAG教學---到底你想控制誰,文字圖層(2)KAG教學---萬能的功能,layoptKAG教學---調整速度,文字顯示(4)KAG教學---請按下你的右鍵,rclick)

(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]

















(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 ゚∀゚)<今次就到這裡,下次再見。

4 則留言:

  1. 大大,關於rclick是否要建立新檔?rclick.ks?

    回覆刪除
  2. 可以這樣做,建立新檔的話可以方便管理。
    當然不建立也不會有任何影響。

    回覆刪除
  3. 大大,請問一下
    我在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要怎麼做連結比較好?
    謝謝大大

    回覆刪除