一括表示

記事No: 21291
タイトルメッセージ(ウィンドウ無し)を画面中央にしたい
投稿日: 2021/05/11 11:05
投稿者ななし [rpdg670(海外)]


やりたい事
メッセージウィンドウが無い状態で、文章を画面中央に表示したい

やってみた事
ネット上であったやり方ですが、メッセージコモンの44行ぐらいから改造。
通常変数を一つ作り、条件分岐で0を通常位置、1を中央の座標位置になるように作りました。
あと90行(行数増えたので99行辺り)あたりからも条件分岐を作り表示させるようにコマンドをいれました。
結果ウィンドウ付きでは文章を表示させることが出来て、元の位置に戻すこともできました。

コモン63 ×[共]メッセージウィンドウ
↓42行辺り
■回数付きループ [ 1 ]回
|●ラベル地点「文章表示位置設定」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■変数操作: Sys1:メッセージウィンドウ X座標 = 2 * CSelf88[座標倍率X(x10)]
|■条件分岐(変数): 【1】 V9-9[メッセージ位置] が 0 と同じ 【2】 V9-9[メッセージ位置] が 1 と同じ
|-◇分岐: 【1】 [ V9-9[メッセージ位置] が 0 と同じ ]の場合↓
| |■変数操作: Sys2:メッセージウィンドウ Y座標 = 17 * CSelf89[座標倍率Y(x10)]
| |■変数操作: Sys2:メッセージウィンドウ Y座標 += CSelf89[座標倍率Y(x10)] / 10
| |■
|-◇分岐: 【2】 [ V9-9[メッセージ位置] が 1 と同じ ]の場合↓
| |■変数操作: Sys2:メッセージウィンドウ Y座標 = 8 * CSelf89[座標倍率Y(x10)]
| |■変数操作: Sys2:メッセージウィンドウ Y座標 += CSelf89[座標倍率Y(x10)] / 10
| |■
|◇分岐終了◇
|■変数操作: Sys3:選択肢ウィンドウ X座標 = 16 * CSelf88[座標倍率X(x10)]
|■変数操作: Sys4:選択肢ウィンドウ Y座標 = 8 * CSelf89[座標倍率Y(x10)]
|■変数操作: Sys5:ポーズカーソルX (-1=自動) = 16 * CSelf88[座標倍率X(x10)]
|■変数操作: Sys6:ポーズカーソルY (-1=自動) = 6 * CSelf89[座標倍率Y(x10)]
|●ラベル「戻り先\cself[40]」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇ループここまで◇◇

↓99行辺り
| | | | |▼ 表示されていなければ新規に表示する
| | | | |■条件分岐(変数): 【1】 V9-9[メッセージ位置] が 0 と同じ 【2】 V9-9[メッセージ位置] が 1 と同じ
| | | | |-◇分岐: 【1】 [ V9-9[メッセージ位置] が 0 と同じ ]の場合↓
| | | | | |■変数操作: CSelf31[基本表示位置Y] = 20 * CSelf89[座標倍率Y(x10)]
| | | | | |■
| | | | |-◇分岐: 【2】 [ V9-9[メッセージ位置] が 1 と同じ ]の場合↓
| | | | | |■変数操作: CSelf31[基本表示位置Y] = 11 * CSelf89[座標倍率Y(x10)]
| | | | | |■
| | | | |◇分岐終了◇



ですがこの状態でウィンドウ表示無しにした時(文章表示@0を使った時)何故か位置変更にならず、その後変数を0に戻しても他の場所のメッセージ表示もウィンドウが無い状態です(ほかの所のメッセージもウィンドウが無いまま)
間にウェイトを挟んだりもしましたが変化がありません。
メッセージコモンを少し改造しているからそのせいかと思って改造していないデータを使ってやってみましたが、やはりそれも同じように中央に移動もしないし、その後の通常のメッセージもウィンドウが消えたまま戻らないです。

画面の中央に文章を持ってくるというのはそんなに珍しくない表現だと思うのですがなぜかやり方が見つからず…
もしかすると全く違う方法なのかとも思い、何かアドバイス等いただけたらと思います。
よろしくお願いします。


記事No: 21293
タイトルRe: メッセージ(ウィンドウ無し)を画面中央にしたい
投稿日: 2021/05/11 11:50
投稿者レビニア [reWrWWd351(海外)]

> ですがこの状態でウィンドウ表示無しにした時(文章表示@0を使った時)何故か位置変更にならず、その後変数を0に戻しても他の場所のメッセージ表示もウィンドウが無い状態です(ほかの所のメッセージもウィンドウが無いまま)

文章表示で使える「@[数字]」はシステム変数を操作しているので、
0にした場合はずっとウィンドウが消えたままになります。

変数操作で「Sys0:顔グラフィック番号」を1に戻してやるか、
文章表示で@1を入力すれば再度ウィンドウを表示させられます。

ウィンドウを表示しない場合の位置変更については、
同コモンの104行目あたりにウィンドウを隠している処理があるので
そこに同じように条件分岐でSys2を変更する処理を入れればいいと思います。


記事No: 21294
タイトルRe: メッセージ(ウィンドウ無し)を画面中央にしたい
投稿日: 2021/05/12 01:35
投稿者ななし [rpdg538(海外)]

返答ありがとうございます。
おかげでウィンドウ非表示のままになる状況は、文章表示の時@1を入れる事で解決しましたし、ウィンドウ非表示のまま画面中央に文章表示出来て解決しました。

ただ、マップイベント作成で以下のように表示した場合

■変数操作: V9-9[メッセージ位置] = 1 + 0 
■文章:@0\nあいうえお
■ウェイト:15 フレーム
■変数操作: V9-9[メッセージ位置] = 0 + 0 
■文章:@1\nあいうえお

画面のようにウィンドウと文章がずれて表示されます。

※教えていただいたコモンの変更状況
 | | | |▼ 表示なし(0)の場合
 | | | |▼ 隠す座標へ移動
 | | | |■条件分岐(変数):  【1】 V9-9[メッセージ位置]  が   0 と同じ  【2】 V9-9[メッセージ位置]  が   1 と同じ 
 | | | |-◇分岐: 【1】  [ V9-9[メッセージ位置]  が  0 と同じ  ]の場合↓
 | | | | |■変数操作: Sys2:メッセージウィンドウ Y座標 = 17 * CSelf89[座標倍率Y(x10)] 
 | | | | |■変数操作: Sys2:メッセージウィンドウ Y座標 += CSelf89[座標倍率Y(x10)] / 10 
 | | | | |■
 | | | |-◇分岐: 【2】  [ V9-9[メッセージ位置]  が  1 と同じ  ]の場合↓
 | | | | |■変数操作: Sys2:メッセージウィンドウ Y座標 = 10 * CSelf89[座標倍率Y(x10)] す
 | | | | |■変数操作: Sys2:メッセージウィンドウ Y座標 += CSelf89[座標倍率Y(x10)] / 10 
 | | | | |■
 | | | |◇分岐終了◇


コモンの入力が間違っているのかイベントのコマンドが間違っているのか分かりません…。またアドバイスをいただけたらと思います。


記事No: 21296
タイトルRe: メッセージ(ウィンドウ無し)を画面中央にしたい
投稿日: 2021/05/12 04:47
投稿者レビニア [reWrWWd351(海外)]

Re: メッセージ(ウィンドウ無し)を画面中央にしたい (画像サイズ: 1432×535 186kB)

あー、ウィンドウ非表示の場合は
Sys2の変更タイミングがズレちゃうみたいですねー。

一応、添付画像のようにマップイベントか別のコモンイベントから
Sys2の変更をかけてやれば位置変更は反映されると思います。
(ウィンドウ非表示の度に行わなければいけませんが)


記事No: 21297
タイトルレビニアさんありがとうございます!
投稿日: 2021/05/12 10:49
投稿者ななし [rrirFOrr315(海外)]

回答ありがとうございます!おかげで自分の思うような表現ができました。
マップイベントの方はそこのイベントをコモンにしてやってみても出来ました。
本当にありがとうございました!