忍者ブログ

[PR]

×

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

【Hiyu&Rava】常用KAG函式介紹2 - 連結篇

 

 

這次介紹的重要功能,在文字冒險類遊戲中不可或缺的項目--「選項(亦可稱呼為分支)」--讓玩家去選擇劇情的走向。
吉里吉里內可以做到這效果的指令分別為圖像式的「button」和純文字的「link」兩種。
 

指令屬性

[link]
color (0xRRGGBB) 滑鼠在連結上或點擊狀態時的顏色

[button]
graphic (圖像檔案名稱)
graphickey (0xRRGGBB) 會透明化的顏色
recthit (true/false) true的話圖像透明部份會有反應,反之在64或以下的透明部分不會導滑鼠起反應

[共通]
storage (腳本檔名) 要連結到的目標檔案的位置
target (標籤) 要跳到去的位置
exp (TJS) 點擊時會實行式子再跳到目標
hint (字串) 用來顯示提示
onenter (TJS) 滑鼠進入範圍內時會實行的式子
onleave (TJS) 滑鼠離開範圍內時會實行的式子
countpage (true/false) 指定為已讀與否
clickse (聲音檔名) 滑鼠點擊時發出的音效
clicksebuf (數字) 指定音效buffer編號
enterse (聲音檔名) 滑鼠進入時發出的音效
entersebuf (數字) 指定音效buffer編號
leavese (聲音檔名) 滑鼠離開時發出的音效
leavesebuf (數字) 指定音效buffer編號


使用方式

以下是簡單的 link 範例,顯示選項讓玩家選擇而繼續進行的方式。
 

*start|開始
; 清除畫面
[cm]
[link target=*select1]選項1[endlink][r]
[link target=*select2]選項2[endlink][r]
[link target=*select3]選項3[endlink][r]
;停止遊戲 等待玩家動作
[s]

*select1
; 斷行
[r]選擇了第1個項目[l]
[s]

*select2
; 斷行
[r]選擇了第2個項目[l]
[s]

*select3
; 斷行
[r]選擇了第3個項目[l]
[s]

效果圖:
 


連給目標不限制同一檔案,想連結到別的檔案去可以用這種方法:
[link target = ”*任意label” storage = “檔名.ks”]

如果不喜歡這種固定顯示連結的話,可以在 link 指令前加上 [locate x=數字 y=數字] 這指令來指定顯示位置。


按鈕格式

吉里吉里的按鈕圖像格式是由3種圖像並連起來的。
由左至由分別是:普通狀態-滑鼠正在點擊-滑鼠在範圍內。



用法和 Link 相近,大多數用在標題畫面、系統按鈕等地方以美化畫面。


簡單例子

[ title.jpg ]

[ 內碼 ]

*start|開始
[iscript]
// 將背景填滿白色
// 圖層.填滿(左, 上, 闊, 高, 色碼);
kag.fore.base.fillRect(0, 0, 800, 600, 0xffffff);
[endscript]

[locate x = 100 y = 100]
[button graphic = title storage = title.ks target = *start hint = 開始遊戲]
[s]

效果:



滑鼠在按鈕上及顯示提示文字



確認方塊和輸入欄

接下來的部分就是玩 AVG 時很大機會會看到的功能--名字輸入。
詳細解釋不如直接用例子作說明比較容易理解,可以先看下圖的範例。



( 可以把下面內碼貼到新的吉里吉里project內執行看看效果 )

內碼:


*start|開始
[cm]
輸入名字後要顯示嗎? :  [checkbox name="f.showname"]
[r][r]
名字 : [edit name="f.sname" length=200 maxchars="8"]
[r][r]
[link target=*ok]OK[endlink]     [link target=*cancel]Cancel[endlink][s]

*ok
; commit 會將代數代入
[commit]
[cm]
;選擇顯示,才會顯示輸入了的名字
[if exp=f.showname]
[r][r]
輸入的名字是: [emb exp=f.sname][l]
[endif]
[r]成功輸入[l]
[jump target=*repeart]

*cancel
; cancel
[cm][r][r]
選擇取消[l]

*repeart
[jump storage="first.ks" target="*start"]

由上面的內碼可以看出,使用 checkbox 和 edit 時一定要配合 commit一起用上,否則代數不會有變化。edit 和 checkbox 可以指定背景顏色 (bgcolor) ;而 edit 可以指定文字顏色 ( color ) 和限制字數。

 

 

 

拍手[3回]

PR

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

LineMode

Kagex 版本所新增的功能,
對應 KAG 功能中的換行換頁等切換,
可以免去記述 [l] 或 [cm] 等指令的麻煩。
詳細內容可以參考資料夾內的 doc/kagex.txt 。
需要注意的是,當使用 linemode 功能時, ignoreCR 會強制為 ON 。

 

linemode

mode  模式 ( 未指定時會以一般 KAG 情況做判定 )

模式有以下幾種,各有不同的功能:

line
換行:執行 [l]
換頁:無視
[p] :通常功能

page
換行:[p] +頁面自動消去
換頁:無視

vn
換行:執行 [l]
換頁:[p] +頁面自動消去

tex
換行:無視
換頁:[p] +頁面自動消去

free
換行:改行
換頁:[p] +頁面自動消去

在此補充一下,KAG 的指令在 Kagex 系列裡面可以使用,
但 Kagex 系列的指令不能在 KAG 內使用。
除非手動加上必要的程式碼或自己寫類似的功能。



文字補充說明

註釋

在程式碼時,
總是會在旁加上註解來提醒自己有什麼必要做、這是用來做什麼的,
在吉里吉里的劇本中也不例外。
在 .ks 檔內,我們可以在行首加上用半形「;」,
來告訴吉里吉里這是註解而不被執行這行內的文字或指令。
(在非行首位置插入「;」不會被當作註解而是顯示成文字)

在 .tjs 檔或在[iscript] 和 [endscript] 範圍內,
註解可使用 「//」作單行註釋和 「/* 註釋文字 */」作多行註釋。

;將字體顏色轉為紅色
[font color='0xff0000']
[iscript]
//在 [iscript] 和 [endscript] 中可以直接寫入TJS式
/*
 * 在吉里吉里中常見的多行註解形式
 * 以上這些註解都不會顯示在遊戲中
 */
[endscript]

 

Tab

在鍵盤左邊會有一個稱為 Tab 的按鍵,
按下後會產生一長串的空白使文字退到特定位置,
主要的功能是用來讓上下文句位置對齊,
在程式碼中,可以用於排縮文本使腳本方便查看。
於 tab 後寫上的文字或指令會如常執行,
而 tab 本身會被程式跳過,
打上數個 tab 也不會影響在畫面上的文字顯示或指令。


除了一般的文字顯示外,
文字圖層也可以用於顯示選項與按鈕,
這些功能可以用於系統選項、小遊戲、處理分支劇情,
無論在製作任何遊戲,都必定會使用上。

這部分將會在下一期詳細解說。

 

拍手[4回]