2011年7月25日星期一

KAG教學(應用篇)---簡單選項框


(建議在閱讀本篇教學之前,請先閱讀KAG教學---分歧,選項(1)KAG教學---到底你想控制誰,文字圖層(2)KAG教學---萬能的功能,layopt)

(k ゚∀゚)<今次利用之前介紹的東西,製作一個一般常見的選項框,上次在KAG教學---分歧,選項(1) 已經介紹過選項,不過大家可能有疑問,我們看慣的選項框不是這樣子的。

的確上一次的範例的選項是放在對話框裡,雖然有少部分遊戲會這樣做,不過大多數都有獨自的選項框。>( ゚ω゚ s)

不過會很困難嗎? >( ゚ω゚ s)

(k ゚∀゚)<絕對不困難,就算使用純文字式選項,只要配合文字圖層,就能製作出不錯的選項框。

(k ゚∀゚)<我們可以使用修改對話框的文字圖層來製作成選項框,好處是比較簡單。以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg2" page=fore layer=base]
以下是分歧點。[p][cm]
[cm]
[position page=fore layer=message0 left=160 top=180 height=120 width=320]
[link target=*select1]選項1[endlink][r]
[link target=*select2]選項2[endlink][r]
[s]

*select1
[cm]
[position page=fore layer=message0 left=0 top=320 height=160 width=640]
這是選項1。[l]
[jump target=*common]

*select2
[cm]
[position page=fore layer=message0 left=0 top=320 height=160 width=640]
這是選項2。[l]
[jump target=*common]

*common
[cm]
回到共通路線。


















(k ゚∀゚)<當到達選項出現的時候,就把原本的對話框改成選項框,而在選項完結後再把選項框改回對話框就可以。

(k ゚∀゚)<當然我們可以使用圖片來自製選項框,以下是範例和範例中選項框的圖片。


選項框:









範例:
[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg2" page=fore layer=base]
以下是分歧點。[p][cm]
[cm]
[position page=fore layer=message0 left=160 top=180 frame=choicebox1]
[link target=*select1]選項1[endlink][r]
[link target=*select2]選項2[endlink][r]
[s]

*select1
[cm]
[position page=fore layer=message0 left=0 top=320 height=160 width=640 frame=""]
這是選項1。[l]
[jump target=*common]

*select2
[cm]
[position page=fore layer=message0 left=0 top=320 height=160 width=640 frame=""]
這是選項2。[l]
[jump target=*common]

*common
[cm]
回到共通路線。

















(k ゚∀゚)<對不起,這個選項框的模樣有點隨便,請大家見諒。

(k ゚∀゚)<不過要留意,當指定圖片為文字圖層背景,我們改回對話框時別忘記需要修改它,由於這範例的對話框沒有圖片作背景,所以只要在frame寫上""就可以。

哦! 好像開始有點像樣,不過我經常看見的選項框是每個選項都有自己的選項框。>( ゚ω゚ s)

(k ゚∀゚)<這情況可以使用多個文字圖層,不過由於需要的文字圖層數量比較多,大家可修改Config.tjs 中的numMessageLayers 來設定文字圖層數量,以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position page=fore layer=message1 left=160 top=140 height=60 width=320]
[position page=fore layer=message2 left=160 top=220 height=60 width=320]
[image storage="bg2" page=fore layer=base]
以下是分歧點。[p][cm]
[cm]
[current layer=message1]
[link target=*select1]選項1[endlink]
[current layer=message2]
[link target=*select2]選項2[endlink]
[layopt layer=message0 visible=false]
[layopt layer=message1 visible=true]
[layopt layer=message2 visible=true]
[s]

*select1
[cm]
[layopt layer=message0 visible=true]
[layopt layer=message1 visible=false]
[layopt layer=message2 visible=false]
[current layer=message0]
這是選項1。[l]
[jump target=*common]

*select2
[cm]
[layopt layer=message0 visible=true]
[layopt layer=message1 visible=false]
[layopt layer=message2 visible=false]
[current layer=message0]
這是選項2。[l]
[jump target=*common]

*common
[cm]
回到共通路線。

















 (k ゚∀゚)<我們使用多個文字圖層來製作個選項框,上述的範例中,文字圖層mesage0用作為對話框,文字圖層mesage1和mesage2則用作為選項框。

(k ゚∀゚)<當需要使用選項時,只要用[current]把選項放在各個文字圖層,然後用[layopt]把對話框設定為不顯示(visible=false),而選項框設定為顯示(visible=true),若果保留對話框的話,就可以不用設定對話框了。

(k ゚∀゚)<當選項完結後,我們重新把對話框設定為顯示,而選項框設定為不顯示,當然記得用[current]來重新控制對話框,透過文字圖層的顯示與否,我們可以到達切換對話框和選項框的效果。

(k ゚∀゚)<上述的範例中的對話框和選項框各自有自己的文字圖層,這樣的好處是方便管理,而且各個文字圖層的用處十分清晰,發生錯誤的機會亦可減低。

(k ゚∀゚)<當然一樣可以使用圖片來自製選項框,以下是範例和範例中選項框的圖片。

選項框:

範例:
[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position page=fore layer=message1 left=180 top=140 frame="choicebox2"]
[position page=fore layer=message2 left=180 top=220 frame="choicebox2"]
[image storage="bg2" page=fore layer=base]
以下是分歧點。[p][cm]
[cm]
[current layer=message1]
[link target=*select1]選項1[endlink]
[current layer=message2]
[link target=*select2]選項2[endlink]
[layopt layer=message0 visible=false]
[layopt layer=message1 visible=true]
[layopt layer=message2 visible=true]
[s]

*select1
[cm]
[layopt layer=message0 visible=true]
[layopt layer=message1 visible=false]
[layopt layer=message2 visible=false]
[current layer=message0]
這是選項1。[l]
[jump target=*common]

*select2
[cm]
[layopt layer=message0 visible=true]
[layopt layer=message1 visible=false]
[layopt layer=message2 visible=false]
[current layer=message0]
這是選項2。[l]
[jump target=*common]

*common
[cm]
回到共通路線。

















哦! 這才是我一直看慣的選項框呀! >( ゚ω゚ s)

(k ゚∀゚)<這個方法比使用[button]有其好處,就是只需要製作一個選項框就可以用於所有選項,使用[button]則要每個都要重新繪畫。

(k ゚∀゚)<大致上介紹完如何製作簡單的選項框,今回就到這裡,下次再見。

3 則留言:

  1. Beginner是也……2013年4月2日 下午5:32

    老師你好,本人在製作選項框時出現了這樣的警示:
    エラーが発生しました
    ファイル:first.ks 行:58
    タグ:position(←エラーの発生した前後のタグを示している場合もあります)
    (void)からObjectへ型を変換できません。Object型が要求される文脈でObject型以外の値が渡されるとこのエラーが発生しま

    第58行是本人的選項2的位置,但本人明明是跟着老師的範例去做的呀,可是不怎樣改都是不行……
    雖然不知道老師你還會否回到這裡,但倘若您看到這則留言的話,請您一定要救救小人呀!!
    謝謝!

    回覆刪除
    回覆
    1. 如果是跟著範例去做的話,
      有可能是因Config.tjs裡面numMessageLayers的值設定的問題,
      因為numMessageLayers的值預設是2,
      即是我們只可以用message0跟message1,
      然而這範例使用到message2,
      所以需要將numMessageLayers的值設定為3才能成功執行。

      刪除
    2. Beginner是也……2013年4月13日 上午4:24

      呀……我忘記了!
      我完全忘記了!
      應該說我完全忘記了要改numMessageLayers的值這回事……
      謝謝老師,我更改後果然就OK了!

      刪除