空想曲線

吉里吉里2/KAG3でのゲーム制作に使える小ネタ置き場。ゲーム用素材も置いてます。

吉里吉里/KAG:グラフィカルボタンの表示と消去について  

2014-10-10
2017-06-14
cm0
tb0

まずは以下のスクリプトを見ながら、どういった動きになるかイメージしてください。


*test
;トランジションを止める
[ stoptrans ]
;表画面を裏画面にコピー
[ backlay ]
;ベースレイヤの裏画面にタイトル画面を読み込む
[ image storage=タイトル画面 layer=base page=back ]
;500ミリ秒でクロスフェードトランジション
[ trans method=crossfade time=500 ]
;トランジションの終了待ち
[ wt ]
;メッセレイヤ0の表画面を可視に
[ layopt layer=message0 visible=true ]
;スタートボタンを配置
[ locate x=100 y=100 ]
[ button graphic=スタートボタン target=*start ]
;おわるボタンを配置
[ locate x=100 y=200 ]
[ button graphic=おわるボタン target=*exit ]
;進行待ち
[ s ]


つぎに、もうひとつのスクリプトをご覧ください。


*test2
[ stoptrans ]
[ backlay ]
[ image storage=タイトル画面 layer=base page=back ]
;メッセレイヤ0の裏画面を可視に
[ layopt layer=message0 visible=true page=back]
;メッセレイヤ0の裏画面を操作対象に
[ current layer=message0 page=back ]
[ locate x=100 y=100 ]
[ button graphic=スタートボタン target=*start ]
[ locate x=100 y=200 ]
[ button graphic=おわるボタン target=*exit ]
[ trans method=crossfade time=500 ]
[ wt ]
;メッセレイヤ0の表画面を操作対象に戻す
[ current layer=message0 ]
[ s ]


これで何が変わるかということですが

ひとつめは「タイトル画面をトランジションしてからボタンを表示」します。
ふたつめは「タイトル画面とボタンをいっしょにトランジションして表示」します。

ボタンが表示されるまでのタイムラグがめっちゃ気になる方は
ふたつめのスクリプトをお試しください。
ちょっと手間がかかるかもしれませんが慣れればヨユーです。
気にならない人はひとつめのスクリプトでおっけいですよー。

では、ついでに消去するときのも。さっきのスクリプトのつづきです。


*start
;メッセレイヤ全消去
[ cm ]
[ backlay ]
[ image storage=はじまる画面 layer=base page=back ]
[ trans method=crossfade time=500 ]
[ wt ]

はっじまるよー[ p ]


これだとトランジションが始まる前にボタンが消えます。
トランジションでいっしょに消したい方は次のように書き換えましょう。


*start
;ロックリンク
[ locklink ]
[ backlay ]
[ image storage=はじまる画面 layer=base page=back ]
;メッセレイヤ0の裏画面をクリア
[ eval exp="kag.back.messages[0].clear()" ]
[ trans method=crossfade time=500 ]
[ wt ]

*start2|はじめる
[ cm ]
はっじまるよー[ p ]


先にボタンをロックして押せないようにしておきます。
あとは kag.back.messages[0].clear() でメッセレイヤ0の裏画面のテキストを消去。
でもってトランジションすれば完了です。

さりげなく宣伝しますが、スクリプトサンプルもこの形式で作っています。
実際にどういった動作になるのか気になる方はダウンロードしていってね。



おまけ・buttoncaption マクロを使ってみた


これは「TJSに挑戦!」さまで解説&配布されているスクリプトです。
グラフィカルボタンに好きな文字列を表示できる仕組みになっているので
選択肢ごとにボタンを作る手間が省けます。かなり便利です。
私も自作ゲームやサンプルで使用させていただいています。

で、実際に使ってみて「ここは注意したほうがいいな」と思った点が
いくつかあったのでメモっておきます。



1.属性 num は0から連番で記述しないとエラーが出る


buttoncaption マクロの属性 num は0から番号を割り振っていきますが
ひとつでも番号が抜けるとエラーが発生します。
条件によって選択肢の有無がある仕掛けを入れる場合は注意が必要です。



2.レンダリング済みのフォントを使用する場合


関数 drawButtonCaption に以下の項目を追加することで
ボタンの文字にレンダリング済みのフォントを割り当てることができます。
追加する場所は .font.height の下あたりで大丈夫です。


.font.mapPrerenderedFont(fontstorage);


fontstorage の部分にはレンダリングしたフォントのファイル名が入ります。
拡張子が「.tft」ってなってるアレです。

レンダリング済みのフォントではなく、普通のフォントを指定する場合は


.font.face(ここにフォント名);


カンマで区切れば複数のフォントが指定できます。優先順位は前から。
ユーザーの PC に指定したフォントがないときは MS Pゴシックになります。

では、今回はこれにて (´∀`*)ノシ


関連記事

コメント

コメントの投稿

Secret

トラックバック

トラックバックURL
→http://kopacurve.blog33.fc2.com/tb.php/366-b3028332
この記事にトラックバックする(FC2ブログユーザー)

Author

Recent

Category

Link

Comment

Mailform

Twitter