2012年5月26日星期六

KAG教學---吉里吉里可以輸入文字嗎,輸入欄

(k ゚∀゚)<若果有玩過RPG或養成遊戲,大家都有可能看過一些遊戲可設定主角的名稱,增加玩家對遊戲的代入感。

我也想在我的遊戲增添這樣的功能,不過如何讓玩家輸入文字?吉里吉里有這樣的功能嗎?>( ゚ω゚ s)

(k ゚∀゚)<吉里吉里是可以製作輸入欄輸入文字,甚至也可以製作Checkbox給玩家勾選,並且把玩家輸入的值儲存到變數裡。

(k ゚∀゚)<我們可以利用[edit]製作輸入欄,其屬性name可以指定將儲存在哪個變數,以下是範例。

[image storage="bg1" layer=base page="fore"]
名字:
[edit name="tf.name"]


















(k ゚∀゚)<在上述的範例裡,吉里吉里顯示了輸入欄給予玩家輸入文字,輸入欄的高度是根據文字大小而決定的。

那麼現在是不是代表我在輸入欄輸入文字,變數tf.name就會把文字儲存起來?>( ゚ω゚ s)

(k ゚∀゚)<不是的,玩家輸入的文字並未儲存起來,這情況正如我們經常見到的程式一樣,往往在按下確定才讀取輸入欄輸入的文字。

(k ゚∀゚)<而吉里吉里在執行[commit]時才真正將輸入欄的文字以字串的形式儲存在變數裡,以下是範例。

[image storage="bg1" layer=base page="fore"]
名字:
[edit name="tf.name"]
[r]
[link target="*ok"]確定[endlink]
[s]
*ok
[commit]
[cm]
現在tf.name的值是
[emb exp="tf.name"]


















(k ゚∀゚)<在上述的範例裡,當我們按下確定時,吉里吉里就會執行[commit],這時輸入欄的文字才會儲存到tf.name裡。

原來如此……>( ゚ω゚ s)

不過話說回來,我總覺這得輸入欄的外觀有點醜陋,而且跟遊戲介面的配色不太配合,有沒有辦法修改它?>( ゚ω゚ s)

(k ゚∀゚)<如果覺得輸入欄裡背景或文字的顏色不適合,可以利用bgcolor這屬性去修改輸入欄的背景顏色,並且利用color這屬性去修改輸入欄的文字顏色,看看以下的範例。

[image storage="bg1" layer=base page="fore"]
名字:
[edit name="tf.name" bgcolor=0xBBBBFF color=0xFFFFFF]


















(k ゚∀゚)<在上述的範例裡,我們將背景顏色設定為0xBBBBFF,而文字顏色亦設定為白色。

顏色已經調整得差不多,不過如果輸入欄裡背景可以再透明一點就好了……>( ゚ω゚ s)

(k ゚∀゚)<透明度可以利用opacity屬性,其數值由0至255,數值是0代表完全透明,255代表完全不透明。以下是範例。

[image storage="bg1" layer=base page="fore"]
名字:
[edit name="tf.name" bgcolor=0xBBBBFF color=0xFFFFFF opacity=100]


















(k ゚∀゚)<在上述的範例裡,輸入欄的透明度為100,跟預設的模樣更加透明。

(k ゚∀゚)<我們還可調整輸入欄的長度和限制可輸入的最多字數,length屬性可以設定輸入欄的長度,以pixel為單位,maxchars屬性限制最多的字數,以下是範例。

[image storage="bg1" layer=base page="fore"]
名字:
[edit name="tf.name" bgcolor=0xBBBBFF color=0xFFFFFF opacity=100 length=150 maxchars=5]


















(k ゚∀゚)<在上述的範例裡,輸入欄的長度為150,亦限制最多字數為5。

(k ゚∀゚)<除了輸入欄,我們還可製作Checkbox給玩家勾選,簡單來說,就是那個網頁表格裡可以複選的方塊。

不過Checkbox是可以複選的,如果是單選呢,吉里吉里有沒有類似Radiobox的東西?>( ゚ω゚ s)

(k ゚∀゚)<吉里吉里並沒有Radiobox等去進行單選,不過可以透過選項來取代。

(k ゚∀゚)<我們可利用[checkbox]來製作Checkbox,其屬性name可以指定將儲存在哪個變數,以下是範例。

[image storage="bg1" layer=base page="fore"]
請選擇您喜歡的寵物:
[r]
[checkbox name="tf.cat"][checkbox name="tf.dog"]


















不過如果選了之後,變數的值到底是什麼?>( ゚ω゚ s)

(k ゚∀゚)<如果勾選了的話,變數的值便是1,否則便是0。

(k ゚∀゚)<跟輸入欄一樣,顏色和透明度也可以改變,可以利用bgcolor這屬性去修改背景顏色,利用color這屬性去修改文字顏色,並且利用opacity屬性去修改透明度。

(k ゚∀゚)<以下是範例。

[image storage="bg1" layer=base page="fore"]
請選擇您喜歡的寵物:
[r]
[checkbox name="tf.cat" bgcolor=0xBBBBFF color=0xFFFFFF opacity=100]
貓 
[checkbox name="tf.dog" bgcolor=0xBBBBFF color=0xFFFFFF opacity=100]
狗


















(k ゚∀゚)<為了更加了解它們的用法,再來一個實際的範例。

[image storage="bg1" layer=base page="fore"]
名字:
[edit name="tf.name" bgcolor=0xBBBBFF color=0xFFFFFF opacity=100 length=150 maxchars=5]
[r]
請選擇您喜歡的寵物:
[checkbox name="tf.cat" bgcolor=0xBBBBFF color=0xFFFFFF opacity=100]
貓 
[checkbox name="tf.dog" bgcolor=0xBBBBFF color=0xFFFFFF opacity=100]
狗
[r]
[link target="*ok"]確定[endlink]
[s]
*ok
[commit]
[cm]
您的名字是
[emb exp="tf.name"]
[r]
[if exp="tf.cat&&tf.dog"]
您喜歡的寵物是貓和狗
[elsif exp="tf.cat"]
您喜歡的寵物是貓
[elsif exp="tf.dog"]
您喜歡的寵物是狗
[endif]


















(k ゚∀゚)<這次介紹差不多了,下次再見。

3 則留言:

  1. 請問..

    "我們可以利用[edit]製作輸入欄~"

    我好像只找得到EditLayer這個tjs file, 是這個嗎?
    還是應該在scenario 那個file裡輸入呢?

    回覆刪除
  2. 請問名稱要怎樣才能在賣麵的內容中出現呢?
    我在做對話遊戲
    非常需要用輸入的名稱當作
    主角的來用

    回覆刪除