2011年6月26日星期日

KAG教學---搖晃,quake

(k ゚∀゚)<今回介紹的是使用簡單的[quake]。但卻是經常使用的功能之一。

[quake]?搖晃嗎?>( ゚ω゚ s)

(k ゚∀゚)<[quake]的功能是畫面搖晃,其用途十分廣泛。不少場景都會使用到。

(k ゚∀゚)<使用[quake]時有一個不能省略的屬性time,time控制著搖晃的時間,其單位有兩種,一是毫秒(ms),二是文字數。

文字數?time怎樣看都是時間,怎會跟文字扯上關係?>( ゚ω゚ s)

(k ゚∀゚)<這是因為[quake]提供兩種方式來設定持續時間,一個是以time所設定時間來計算,另一個是指定數量的文字顯示所消耗的時間來計算。即是文字顯示速度乘為time所指定的數值。

可是我怎樣設定我用哪一個方式?>( ゚ω゚ s)

(k ゚∀゚)<設定時可以用[quake]的timemode指定其方式,若果省略了timemode的話,吉里吉里會按照指定Config.tjs 中的defaultQuakeTimeInChUnit 所設定的來決定。

(k ゚∀゚)< timemode可接受的值有兩個,一是ms,以time所設定時間來計算,另一個是delay,以文字數量來設定。以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg2" page=fore layer=base]
點一下後開始搖晃,timemode=ms,time=3000。
[p][cm]
[quake time=3000 timemode=ms]
搖晃中
[p][cm]
點一下後開始搖晃,timemode=delay,time=100。
[p][cm]
[quake time=100 timemode=delay]
搖晃中


(k ゚∀゚)< 範例裡用了這兩種方式,前者是timemode=ms,持續時間是3000ms,即是3秒。後者是timemode=delay,持續時間會因文字速度而定,在沒有修改Config.tjs的情況下,「高速」時持續時間是10x100=1秒,「普通」時持續時間是30x100=3秒,「遅い」時持續時間是50x100=5秒。

我總覺得搖晃幅度太小,幅度可以大一點嗎?>( ゚ω゚ s)

(k ゚∀゚)< 搖晃的幅度可以透過hmax和vmax設定,hmax 是設定橫向最大的幅度,vmax 是設定垂直最大的幅度。以pixel為單位,預設值是10。以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg2" page=fore layer=base]
點一下後開始搖晃,vmax=30,hmax=0。
[p][cm]
[quake time=3000 vmax=30 hmax=0]
搖晃中
[p][cm]
點一下後開始搖晃,vmax=0,hmax=30。
[p][cm]
[quake time=3000 vmax=0,hmax=30]
搖晃中

(k ゚∀゚)<在上述的範例中,其中一個數值被設定為0,前者是垂直搖晃,後者是橫向搖晃。

我有問題! 為什麼我在搖晃時可以繼續點下去,而且不等待第一個[quake]結束就開始第二個。>( ゚ω゚ s)

(k ゚∀゚)<這個情況是可以防止的,[quake]有一個對應的功能[wq],[wq]是等待[quake]結束才繼續,以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg2" page=fore layer=base]
點一下後開始搖晃。
[p][cm]
[quake time=3000]
搖晃中
[wq]
[p][cm]
搖晃結束

(k ゚∀゚)<以上是範例可以看到,[wq]等待[quake]結束後,才繼續執行[p][cm]。

(k ゚∀゚)<[wq]有一個屬性canskip,可以設定[wq]可否被skip略過,若果是true,當玩家點擊滑鼠時,[wq]會直接把[quake]結束,不會等待[quake]結束。反之若果是false,玩家必須等待[quake]結束才繼續。

如果我不想等待它,可不可以直接結束搖晃效果?>( ゚ω゚ s)

(k ゚∀゚)<當然可以,在這種情況,你可以使用[stopquake]直接結束搖晃效果。以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg2" page=fore layer=base]
點一下後開始搖晃。
[p][cm]
[quake time=3000]
搖晃中
[p][cm]
[stopquake]
搖晃結束

(k ゚∀゚)<今回內容比較短,不過大致上介紹完[quake],下次再見吧。

4 則留言:

  1. 如果我要把quake放去無限直到[stopquake]爲止該怎麽寫?

    回覆刪除
    回覆
    1. 雖然我之前說[quake]的屬性time是不能省略(連吉里吉里官方的文件也是這樣說),
      不過如果有看過MainWindow.tjs裡quake的定義,
      就會發現只要不設定屬性time的值,
      [quake]的效果就可以永遠繼續下去,
      直到執行[stopquake]為止。

      刪除
  2. [wq]有一個屬性canskip,可以設定[wq]可否被skip略過,這句中
    canskip需要至哪裡設定T還是F?

    回覆刪除