2011年7月1日星期五

KAG教學---到底你想控制誰,文字圖層(2)

話說回來,其實在什麼情況下使用多個文字圖層?>( ゚ω゚ s)

(k ゚∀゚)<一般情況下的確不常使用,但亦不是沒有實例,有些遊戲使用多個對話框,製造像漫畫形式的對話框。還有,文字圖層亦可以用來作為顯示介面,例如養成類遊戲或RPG有各種數值需要顯示如HP、攻擊力等,這些都可以用文字圖層顯示。

(k ゚∀゚)<吉里吉里文字圖層的最大數量預設了2個,若果有需要,大家可修改Config.tjs 的numMessageLayers來設定文字圖層的數量。

是不是把position的layer設定成message1就可以使用設定message1的文字圖層?>( ゚ω゚ s)

(k ゚∀゚)<是的,不過要留意,message0以外的文字圖層一律預設了visible為false,所以要修改visible為true才能看到。以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position page=fore layer=message1 left=0 top=0 height=160 width=640 visible=true]
[image storage="bg2" page=fore layer=base]





















(k ゚∀゚)<這兩個文字圖層是各自獨立的,其設定不會互相影響,我們在一個文字圖層使用[deffont]等文字設定時,亦不會影響別的文字圖層。

現在有兩個文字圖層,但如果用平常的方式顯示文字,到底是哪個圖層顯示文字?>( ゚ω゚ s)

(k ゚∀゚)<答案是message0,因為我們沒有改變控制的對象。以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position page=fore layer=message1 left=0 top=0 height=160 width=640 visible=true]
[image storage="bg2" page=fore layer=base]
對話框1號





















(k ゚∀゚)<吉里吉里開始時預設了message0為控制的文字圖層,所以在沒有改變控制的對象的情況下,我們繼續控制著message0。

這意味著我有方法改變控制的對象吧?要怎樣改變它?>( ゚ω゚ s)

(k ゚∀゚)<其實之前我們曾經簡單介紹過,我們使用[current] 來指定想控制的文字圖層,以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position page=fore layer=message1 left=0 top=0 height=160 width=640 visible=true]
[image storage="bg2" page=fore layer=base]
對話框1號[l][r]
[current layer=message1 page=fore]
對話框2號

















(k ゚∀゚)<[current]除了可以使用layer指定其文字圖層,還可以使用page指定為前頁面(表ページ)還是後頁面 (裏ページ)。

(k ゚∀゚)<[current]還有一個屬性叫withback,當withback為true時,可以同時控制前頁面(表ページ)和後頁面 (裏ページ)。

但是我用的時候,出現了一些問題,看看以下的例子。>( ゚ω゚ s)

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position page=fore layer=message1 left=0 top=0 height=160 width=640 visible=true]
[image storage="bg2" page=fore layer=base]
對話框1號[l][r]
[current layer=message1 page=fore]
對話框2號[p][cm]
為什麼下方的文字消失了?!































為什麼[cm]連message0的文字都消除,明明我控制著的是message1?>( ゚ω゚ s)

(k ゚∀゚)<如果只用message0的話,我們會使用[cm]來消除文字。但是在兩個或以上文字圖層的情況下,消除文字的方法就大有不同。

(k ゚∀゚)<首先我重新說明[cm]的功能,[cm]會把所有文字圖層的文字消除,而控制的對象不會改變,所以有上述的情況發生。

(k ゚∀゚)<吉里吉里有兩個相似功能的指令,分別是[ct]和[er]。

(k ゚∀゚)<[ct]與[cm]一樣,會把所有文字圖層的文字消除,不過之後控制的對象改變為message0。而[er]則是只會把控制的文字圖層的文字消除,控制的對象也不會改變。以下是範例。


[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[position page=fore layer=message1 left=0 top=0 height=160 width=640 visible=true]
[image storage="bg2" page=fore layer=base]
對話框1號[l][r]
[current layer=message1 page=fore]
對話框2號[p][er]
下方的文字沒有被消除,控制對象繼續是message1。[p][ct]
所有文字被消除,控制對象變成message0。






























(k ゚∀゚)<[ct]一般使用於message0是主要文字圖層的情況,其他文字圖層則是輔助性質。而[er]是用於多個對話框的情況,不過也不是必然的,請大家自行決定使用哪一個。

(k ゚∀゚)<時間也差不多了,下回開始介紹圖層切換吧,正式開始介紹後頁面 (裏ページ)的用處。

3 則留言:

  1. 您好,小的依循此文練習時候
    就算將code全數copy到first.ks中,但依然無法顯示第二個圖層

    是有可能動到了甚麼地方才無法顯示嗎?

    回覆刪除
    回覆
    1. 不好意思老師,我寫的練習代碼如下:

      [image layer=base storage="bg01" ]
      [position layer=message0 page=fore ]
      [position page=fore layer=message1 left=0 top=0 visible=ture]
      圖層1

      [current layer=message1 page=fore]
      圖層2
      [s]

      我想要測試message0跟message1疊在一起的效果
      不知道為什麼自己打的message1代碼無法顯示
      但是如果複製老師的代碼,一樣也可以顯示

      刪除
    2. 不好意思,查到問題是true寫錯了...><佔了老師的版面不好意思
      請老師刪除吧...謝謝教程

      刪除