忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【Hiyu&Rava】常用KAG函式介紹1 - 文字篇(上)

在前面的章節中提到過,吉里吉里是一款以腳本語法來開發遊戲的軟體,

這也意味著吉里吉里本身沒有協作介面可以使用,
使用者必須以編寫腳本文件的方式來製作遊戲;
即是透過腳本的指令,來促使各個圖層動作。

圖層基本上分成兩種,分別是一般圖層(Layer)以及文字圖層(Message Layer),
一般圖層專門用於放置圖像,而文字圖層則用於顯示文字以及擺設按鈕,
實際上兩者的功能是可以互通的,酌看使用者是否有這個需要。
其中,文字圖層又尤為重要,
因此本次教學會先從文字圖層的各個基本功能介紹起。

在此之前,先談一下該從哪個地方開始寫入腳本:
在架構好遊戲的資料夾後,腳本文件通常會統一存放在 data/scenario 資料夾中,
事實上,只要資料存在於 data 中,系統讀取時必然不會忽略它,
這麼做的原因在於整齊美觀,以及同名稱時,讀取優先序的問題,
有關優先序的設定,可以在 data/system/initialize.tjs 中調整。

系統設定上,吉里吉里會從 first.ks 這個名稱開始讀入腳本
因此,請從這個腳本開始寫程式。
另外,除了 first.ks ,吉里吉里也會先讀取 macro.ks 的內容,
一般會將函式巨集集中寫在這個腳本中。

打開這個腳本後,可以嘗試鍵入一些文字,
純文字的部份會以預設的字體設定顯示在文字圖層中,如以下腳本:

範例

所呈現的效果為下:

 


在普通版本的情況下,
文字顯示時並不會讀到換行字元
也就是說在打以下腳本時:


所呈現的依然會是上張畫面的內容。


文字設定

在 Config.tjs 中預設字體與文字圖層的各個設定,
或是直接透過預設指令來修改當前的設定:

deffont 設定當前的字體

face 字體名稱

size 文字大小 ( 單位為pixel )

color 顏色 ( 0xRRGGBB 格式 )

rubysize 注釋字大小 ( 單位為pixel )

rubyoffset 注釋字位置 ( 單位為pixel )

shadow 陰影 ( true / false )

shadowcolor 陰影顏色 ( 0xRRGGBB 格式 )

edge 邊緣 ( true / false )

edgecolor 邊緣顏色 ( 0xRRGGBB 格式 )

bold 粗體 ( true / false )


defstyle 設定當前的文字間距

linespacing 行間距 ( 單位為pixel )

pitch 字間位移 ( 單位為pixel )

linesize 預約大小 ( 單位為pixel )


delay 設定文字顯示速度
speed 顯示速度

配合使用 resetfont  resetstyle 等函式才會對 current (目前使用的)圖層生效。

參考範例

[deffont size=50 shadow=true shadowcolor=0xff0000]
[resetfont]
範例

 


另外,也有暫時變更設定的指令可以使用,
和 def 指令不同的是,
在圖層進行動作(例如 resetfont (resetstyle) / cm / er / ct)後即會失去效力

font 設定文字字體

face 文字大小 ( 單位為pixel )

size 字體名稱

color 顏色 ( 0xRRGGBB 格式 )

rubysize 注釋字大小 ( 單位為pixel )

rubyoffset 注釋字位置 ( 單位為pixel )

shadow 陰影 ( true / false )

shadowcolor 陰影顏色 ( 0xRRGGBB 格式 )

edge 邊緣 ( true / false )

edgecolor 邊緣顏色 ( 0xRRGGBB 格式 )

bold 粗體 ( true / false )


style 設定文字間距
align 對齊設定 ( left / top / center / right / bottom / default )

linespacing 行間距 ( 單位為pixel )

pitch 字間位移 ( 單位為pixel )

linesize 預約大小 ( 單位為pixel )

autoreturn 自動換行換頁 ( true / false )


以下為範例腳本及其效果:

[font size=100 color=0xff0000]
範例
;在圖層動作後,會失去效力:
[font size=50 shadow=true shadowcolor=0xff0000]
[er]
範例


有關字體指令的進一步說明請參照 KAG 的 Reference 。


文字顯示操作

在編寫劇情時,難免會用上換行、清空訊息、顯示變數等等的功能,
這些功能在 KAG 中都可以找到對應的指令:

l 等待點擊
r 換行
cm 換頁
p 換頁同時等待點擊
er 清空目前文字圖層所顯示的內容
nowait 將之後的文字一次顯示出來直到 endnowait 指令出現為止
endnowait 用於終止 nowait 指令
emb 顯示變數內容
exp TJS式

在寫入 [l] 時,等待處會顯示預設的等待鍵 ( 倒三角形 ) ;
而在寫入 [p] 時,則會顯示預設的換頁鍵 (頂端朝右的三角形) 。

因此在劇本要換行等待時,通常 [l][r] 會連著寫,
而換頁等待時, [p] 會單獨存在,不過寫成 [p][cm] 也可。

[emb exp=" "] 則是當要顯示變數或特殊字串時,在 " " 中填入相關的內容用。
另外, " " 中也可以填入一般的字串,效果等同於純文字顯示,
該用法會在 [cond] 、 [if] 等指令時用上,
有關 TJS式 的部分,在日後講到變數時會有清楚的解說。

以下為各個指令依序所產生的效果:

等待點擊[l]換行[r]換頁[p]
[nowait]這裡會一次顯示出來[endnowait]
[er]

1)等待點擊
2)換行與換頁
3)[nowait] 指令使上圖直接變成這張,文字會即時出現
4)[er] 消去所有文字

以下兩者為顯示一般字串與變數的用法

;1
[emb exp="'範例'"]

;2
[eval exp="'f.samle='範例''"]
[emb exp="f.sample"]




清除文字圖層

主要用來清除文字圖層的指令有三種。
分別是 cm、ct 和 er。
其中兩種在前面已經提到過了,
事實上,這三種指令都可以用來當作換頁功能。

使用這些指令後, postion 和 lapout 屬性並不會受到影響。
(以下的.為共通點,x為相異點)

cm
.清除所有文字圖層
.清除所有文字圖層的 font 和 style 的設定
.操作對象維持目前使用中的文字圖層

ct
.清除所有文字圖層
.清除所有文字圖層的 font 和 style 的設定
x操作對象變成 message0

er
x清除當前文字圖層
x清除當前文字圖層的 font 和 style 的設定
.操作對象維持當前使用中的文字圖層

基本上只使用 message0 (預設的文字圖層)的話,就不用在意使用哪個指令。
但使用兩個或以上的文字圖層,就得注意想清除的是哪個文字圖層。


 

拍手[1回]

PR

この記事にコメントする

お名前
タイトル
メール
URL
コメント
絵文字
Vodafone絵文字 i-mode絵文字 Ezweb絵文字
パスワード

この記事へのトラックバック

この記事にトラックバックする