|
>こんにちは。最近β4を使い始めたものです。
>掲示板で「メッセージウインドウを複数使い分けたい」という質問がありましたが、わたしもノーマルなテキストウインドウと、顔画像つきメッセージウインドウの二つを使いたいと思いました。
>β4にはフェイス画像付きメッセージウインドウのサンプルがありました。それを元にやってみましたが、テキストが顔画像にかぶさってしまいます。ただしスペースをあけて打てばなんとかはいります。
>
>もうひとつ、別な短いメッセージウインドウを作ってみてメイン設計で追加してみましたが、(61行以下)
>
> //フェイス付きウインドウ
> \BTDEF.GROUP("ES.GAMEMAIN")
> \BT.GROUP(1)
> \BT.CGSYS("main/meswindow1")//自作のウインドウ
> \BT.XY(237, 452)//フェイス画像分右にずらす
> \BT.MAP.A(255)
> \BT.Z(013)
> \BT.SET(TIP.FMESW)//文字列が必要かといれてみる
>
> //フェイス付きウィンドウ・テキスト部分
> \BTDEF.GROUP("ES.GAMEMAIN")
> \BT.GROUP(1)
> \BT.CGSYS("main/meswindow_txspace")
> \BT.XY(237+20, 452+02+10)//フェイス画像分右にずらす
> \BT.MAP.A(255)
> \BT.Z(012)
> \BT.SET(TIP.FMESW.TX)
>
> //フェイス付きウィンドウ・後ろ(透過部分)
> \BTDEF.GROUP("ES.GAMEMAIN")
> \BT.GROUP(1)
> \BT.CGSYS("main/meswindow_back")//自作のウインドウ
> \BT.XY(237, 452)//フェイス画像分右にずらす
> \BT.MAP.A(255)
> \BT.Z(011)
> \BT.SET(TIP.FMESW.A)
>
>サンプルの真似をして上記のように書くだけではウインドウが最初からずっと表示されているし、元のウインドウも消えてません。
>もしかしてメイン画面設計のIF[@L(777)==1] //2番目のデザイン とかを使うんでしょうか?
>顔画像用の2つめのテキストウインドウを元のテキストウインドウと台詞のたびに置き換える方法があれば教えてください。
なるほど、説明不足で申し訳ないです。
この場でひとまず簡単に説明します。
β4では \BT.SET 命令で指定するボタン名自体に意味がありまして、
ERISのほうで機能が自動的に割り振られています。
つまり、メッセージウィンドウは「TIP.MESW」、
テキストレイヤが「TIP.MESW.TX」、透過部分が「TIP.MESW.A」
という風に決まっていまして、
これ以外の名前でメッセージウィンドウを登録しても
メッセージウィンドウとして正しく機能しません。
他に関しても同様で、
「BTN.LOG」ならバックログボタン、
「BTN.SAVE」ならセーブ画面ボタン、
というようになっています。
また、2つのメッセージウィンドウを切り替えて使う方法ですが、
>もしかしてメイン画面設計のIF[@L(777)==1] //2番目のデザイン とかを使うんでしょうか?
まさにその通りでして、
たとえばメッセージウィンドウをサンプルのものと独自のもので使い分けたい場合、
IF[@L(777)==0]
//
//1番目のデザインをここで定義する
//
IFEND[]
IF[@L(777)==1]
//
//2番目のデザインをここで定義する
//
IFEND[]
という形でまず定義しておきます。
このとき、1番目のデザインと2番目のデザインでボタン名は重複して大丈夫です。
具体的に書くと、以下のようになると思います。
IF[@L(777)==0]
//メッセージウィンドウ
\BTDEF.GROUP("ES.GAMEMAIN")
\BT.GROUP(1)
\BT.CGSYS("main/tip_meswindow")
\BT.XY(037, 452)
\BT.MAP.A(255)
\BT.Z(013)
\BT.SET(TIP.MESW)
//メッセージウィンドウ・テキスト部分
\BTDEF.GROUP("ES.GAMEMAIN")
\BT.GROUP(1)
\BT.CGSYS("main/tip_meswindow_txspace")
\BT.XY(037+20, 452+02+10)
\BT.MAP.A(255)
\BT.Z(012)
\BT.SET(TIP.MESW.TX)
//メッセージウィンドウ・後ろ(透過部分)
\BTDEF.GROUP("ES.GAMEMAIN")
\BT.GROUP(1)
\BT.CGSYS("main/tip_meswindow_back")
\BT.XY(037, 452)
\BT.MAP.A(255)
\BT.Z(011)
\BT.SET(TIP.MESW.A)
IFEND[]
IF[@L(777)==1]
//フェイス付きウインドウ
\BTDEF.GROUP("ES.GAMEMAIN")
\BT.GROUP(1)
\BT.CGSYS("main/meswindow1")//自作のウインドウ
\BT.XY(237, 452)//フェイス画像分右にずらす
\BT.MAP.A(255)
\BT.Z(013)
\BT.SET(TIP.MESW)//文字列が必要かといれてみる
//フェイス付きウィンドウ・テキスト部分
\BTDEF.GROUP("ES.GAMEMAIN")
\BT.GROUP(1)
\BT.CGSYS("main/meswindow_txspace")
\BT.XY(237+20, 452+02+10)//フェイス画像分右にずらす
\BT.MAP.A(255)
\BT.Z(012)
\BT.SET(TIP.MESW.TX)
//フェイス付きウィンドウ・後ろ(透過部分)
\BTDEF.GROUP("ES.GAMEMAIN")
\BT.GROUP(1)
\BT.CGSYS("main/meswindow_back")//自作のウインドウ
\BT.XY(237, 452)//フェイス画像分右にずらす
\BT.MAP.A(255)
\BT.Z(011)
\BT.SET(TIP.MESW.A)
IFEND[]
そしてあとは、シナリオスクリプト上から、
@L(777)=1
\UI.RELOAD
とすれば、2番目のデザインに切り替わる、という感じです。
@L(777)=0
\UI.RELOAD
とすれば、1番目のデザインに切り替わります。
実際にこれはサンプルの「UIサンプル」でご覧になれますので、
サンプルスクリプトを見ながら参考にしていただければと思います。
ただ、台詞の度に切り替える場合ですと、ちょっと想定外の使用方法なため、
動作的にちょっと重いかもしれません。その場合、
フェイス画像用ウィンドウで統一していただいたほうがいいかもしれません。
すみませんです。
|
|
|