2011年7月18日星期一

KAG教學---跳躍吧,jump

(k ゚∀゚)<這次介紹的是[jump],也是為了介紹選項前的準備。

(k ゚∀゚)<正如字面上的意義,[jump]是用來跳到指定的劇本位置,以下是範例。

*start
[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg1" page=fore layer=base]
大家好![r]
這次介紹的是[[jump]![p][cm]
[jump target=*start]

















為什麼好像鬼打牆一樣,不斷重複同一句話。>( ゚ω゚ s)

(k ゚∀゚)<這是因為每當劇本跑到最後的時候,[jump]就會把劇本跳到最初的位置。

(k ゚∀゚)<這次也是我們第一次使用標籤(label),標籤是一個記號,標記著所標示的劇本位置,方便我們告訴吉里吉里跳到指定的劇本位置。

(k ゚∀゚)<使用標籤時只要在標籤名稱前加上星號( * ),例如上述範例的*start一樣。

(k ゚∀゚)<而[jump]是用來跳到這些標籤的位置,其屬性target設定需要跳到的標籤。

(k ゚∀゚)<在以上的範例,當劇本達到最後的[jump],就返回標籤 *start。

你不能做得更有意義的範例嗎......這樣像鬼打牆的範例有實際用途嗎......>( ゚ω゚ s)

(k ゚∀゚)<這種像鬼打牆的情況,我們會稱為無窮迴圈,上述的範例事實上是每個遊戲都會使用的。

別騙人,有什麼可能會每個遊戲都用到......>( ゚ω゚ s)

(k ゚∀゚)<當玩家跑到遊戲的結局,連ED曲都播放完,不是都會返回最初的標題畫面嗎? 這正是與上述的範例一樣,我暫時從未看到有遊戲跑到最後會叫玩家重新開啟遊戲。

(k ゚∀゚)<[jump]可以跳到劇本的任何部分,以下是範例。

[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg1" page=fore layer=base]
大家好![r]
這次介紹的是[[jump]![p][cm]
[jump target=*otherplace]
這句會被跳過。[p][cm]
*otherplace
劇本跳到這裡。


既然這句被跳過,為什麼要寫下去? >( ゚ω゚ s)

(k ゚∀゚)<這情況一般用於劇情有分歧的時候,例如達到某條件會出現的劇情,不過這情況的確不會使用[jump],上述的範例只是提及一下[jump]有這種功能而已。

(k ゚∀゚)<[jump]其中一個主要功能是連接到另一個ks檔案,以下是範例。

first.ks
[position page=fore layer=message0 left=0 top=320 height=160 width=640]
[image storage="bg1" page=fore layer=base]
大家好![r]
這次介紹的是[[jump]![p][cm]
[jump storage="ch1.ks" target=*ch1start]

ch1.ks
*ch1start
這裡是ch1.ks。



(k ゚∀゚)<上述的[jump]把劇本由first.ks跳到ch1.ks,其屬性storage指定連接到的檔案名稱。

(k ゚∀゚)<當只設定了storage而忽略target,吉里吉里會跳到檔案開頭,相反如果只設定了target而忽略storage,吉里吉里會在同一檔案尋找指定的標籤。

哦......看起來很好用!>( ゚ω゚ s)

(k ゚∀゚)<這樣就可以把劇本分開成多個檔案,大家亦不用把自己幾萬字的傑作全部放在first.ks。把不同的劇情分開成多個檔案,既會方便管理劇本,亦方便除錯。

(k ゚∀゚)<[jump]還有一個屬性countpage,設定當[jump]跳到某標籤時,此標籤是否設定成「已讀」,預設值是true,不過這屬性沒有什麼用途,如果有需要的話可以參考一下。

(k ゚∀゚)<[jump]雖然是十分方便的功能,能夠在劇本裡任意跳躍,不過正因如此,容易令劇本整個架構變得混亂,亦有可能發生邏輯錯誤,所以不要太任意地亂跳,小心地使用。

(k ゚∀゚)<[jump]的介紹差不多了,下次終於可以選項。

1 則留言: