行 |
処理内容 |
21 |
メッセージウィンドウを表示するピクチャ番号を設定。 |
22-24 |
▼ Ver2.20 座標倍率を縦横別に修正 |
可変DB[18:基本システム用変数]のデータ[97:座標倍率X[x10]][98:座標倍率Y[x10]]から
画面サイズの基準となる値を取得。
【可変DB[18]のデータ[97・98]の説明を見る】
セルフ[88]には「画面の横サイズ÷32」の値を設定。(640×480の場合は「20」を設定)
セルフ[89]には「画面の縦サイズ÷24」の値を設定。(640×480の場合は「20」を設定) |
25 |
メッセージウィンドウのウィンドウ画像が保存されているアドレスを
ユーザーDB[16:画像/音声設定]の項目[2:メッセージウィンドウ ベース画像]からセルフ[9]に取得。 |
26 |
セルフ[35]に「0」を設定。このセルフ[35]はメッセージウィンドウを表示したら値が「1」に変わり、
「1」の時に文章の表示が終了したら、メッセージウィンドウの消去する処理が実行されます。 |
27-39 |
▼ メッセージウィンドウの表示位置とサイズを設定 |
セルフ[88・89]から取得した値を基にメッセージウィンドウのサイズや表示位置を設定。
▼画面サイズが[640×480]の場合
セルフ[38:サイズX]:30×20=600(ウィンドウの横サイズ)
セルフ[39:サイズY]: 7×20=140(ウィンドウの横サイズ)
セルフ[30:基本表示位置X]:16×20=320(ウィンドウのX位置)
セルフ[31:基本表示位置Y]:20×20=400(ウィンドウのY位置)
セルフ[32:隠し表示位置X]:16×20=320(ウィンドウの移動前X位置)
セルフ[33:隠し表示位置Y]:28×20=560(ウィンドウの移動前Y位置)
|
35 |
顔グラフィックの表示に使うピクチャの枚数としてセルフ[91]に「3」を設定。 |
この設定により、顔グラフィックを表示するピクチャ番号は[19501〜3]になります。 |
36 |
システム変数[10]に「9」を設定。 |
この設定により、【文章の表示】を実行した9フレーム後に文章の表示が始まり、
メッセージウィンドウが表示されてから文章が表示されるようになります。 |
41 |
セルフ[40]に「1」を設定。 |
このセルフ[40]は53行目のラベル「戻り先\cself[40]」に飛ぶで使用しています。 |
42-55 |
■回数付きループ [ 1 ]回 |
文章や選択肢の表示に関するシステム変数の値を初期化。 |
ここの初期化設定は、ゲーム起動時に1回実行される他、
【文章の表示】を実行する時にも実行されます。
そのため、【文章の表示】を実行する前にシステム変数[1〜2]の値を変えても、
【文章の表示】を実行した時に、ここの設定値に戻ってしまいます。
【メッセージウィンドウのY表示位置を変える方法を見る】 |
|
43 |
●ラベル地点「文章表示位置設定」 <<<<<<<<<<<<<<<<<<<<<<<<★ |
メッセージウィンドウを表示する直前に89行目からジャンプして来る時に使用。 |
|
44-50 |
メッセージウィンドウ、選択肢ウィンドウ、ポーズカーソルの表示位置を設定。 |
▼画面サイズが[640×480]の場合
システム変数[1:メッセージウィンドウ X座標]: 2×20=40
システム変数[2:メッセージウィンドウ Y座標]:17×20+20÷5=344
システム変数[3:選択肢ウィンドウ X座標]:16×20=320
システム変数[4:選択肢ウィンドウ Y座標]: 7×20=140
システム変数[5:ポーズカーソルX (-1=自動)]:16×20=320
システム変数[6:ポーズカーソルY (-1=自動)]: 6×20=120
※システム変数[6:ポーズカーソルY (-1=自動)]は、
システム変数[2:メッセージウィンドウ Y座標]の位置を基点に設定します。
|
|
53 |
●ラベル「戻り先\cself[40]」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>> |
セルフ[40]の値によって、ジャンプする位置が変わります。
セルフ[40] |
ジャンプ移動先 |
1 |
56行目 |
2 |
90行目 |
|
56 |
●ラベル地点「戻り先1」 <<<<<<<<<<<<<<<<<<<<<<<<★ |
システム変数[1〜6]の初期設定が完了したら、
53行目のラベル「戻り先\cself[40]」からここへジャンプしてくる。 |
58 |
システム変数[0]に「1」を設定し、【文章の表示】を実行した時に、
メッセージウィンドウの画像が表示されるようにします。 |
システム変数[0]が「0」の場合は、「メッセージウィンドウの画像表示なし」になります。 |
セーブデータのロード時にこの設定(システム変数[0]=1)が実行されます。
そのため、セーブ時に「0(メッセージウィンドウの表示なし)」にしている場合は、
ロード後の処理で「システム変数[0]=0」の設定を行ってください。 |
59-230 |
■ループ開始 |
ずっとこのループ内で処理が続きます。 |
|
60-67 |
▼ 顔グラフィック番号が-1以下になったら処理待ち状態
▼ 基本的に、処理が終わったら-1になる
■条件分岐(変数): 【1】 Sys0:顔グラフィック番号 が -1 以下 |
システム変数[0]が「-1以下」の時には分岐し、
【ループ開始へ戻る】が繰り返し実行され、処理がここでループします。
「処理が終わったら-1になる」とありますが、実際には「-1」になる設定はありません。 |
|
69-71 |
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 表示処理
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
|
72-175 |
■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ |
【文章の表示】が実行されたら分岐。 |
|
|
74 |
▼ メッセージウィンドウ表示 |
|
|
75 |
●ラベル地点「ウィンドウ表示」 <<<<<<<<<<<<<<<<<<<<<<<<★ |
メッセージウィンドウの消去処理を実行している途中で【文章の表示】が実行された時に、
再びメッセージウィンドウを表示するため、187行目や210行目からここへジャンプしてきます。 |
|
|
77-173 |
■条件分岐(変数): 【1】 CSelf48[直前顔グラ番号] が CSelf49[顔グラフィック番号]
以外 |
顔グラフィックの番号が現在表示中の設定と異なる場合は分岐。 |
|
|
|
80-98 |
■条件分岐(変数): 【1】 CSelf49[顔グラフィック番号] が 1 以上 |
メッセージウィンドウを表示する場合は分岐。 |
|
|
|
|
82 |
▼ 顔番号が1以上ならメッセージウィンドウ表示 |
|
|
|
|
84-94 |
■条件分岐(変数): 【1】 CSelf35[ウィンドウ表示中フラグ] が 0 と同じ |
メッセージウィンドウの画像が表示されていない場合は分岐。 |
|
|
|
|
|
86-87 |
▼ メッセージウィンドウを新規表示する処理
▼ メッセージウィンドウの表示位置を再設定 |
|
|
|
|
|
88 |
セルフ[40]に「2」を設定。
この設定により、53行目にあるラベル「戻り先\cself[40]」に飛ぶのジャンプ先が、
90行目のラベル地点「戻り先2」になる。 |
|
|
|
|
|
89-90 |
●ラベル「文章表示位置設定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
●ラベル地点「戻り先2」 <<<<<<<<<<<<<<<<<<<<<<<<★ |
43行目のラベル「文章表示位置設定」へジャンプし、システム変数[1〜6]の初期化を終えたら、
53行目のラベル「戻り先\cself[40]」に飛ぶから90行目のラベル「戻り先2」に戻ってくる。 |
|
|
|
|
|
91-92 |
▼ 表示されていなければ新規に表示する |
ウィンドウ画像を表示。 |
|
|
|
|
95-96 |
メッセージウィンドウを画面下(画面の外)からスクロールさせて表示します。 |
移動設定が2つありますが、これは最初に高速で移動させて、
3フレーム後に移動速度を落として移動させる事で、
途中で減速させながらメッセージウィンドウが移動する演出を行っています。
▼画面サイズが[640×480]の場合の1フレーム単位の移動量
移動開始からのフレーム時間 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
1フレームの移動量(ピクセル) |
32 |
32 |
32 |
12 |
13 |
13 |
13 |
13 |
|
|
|
|
|
97 |
ウィンドウを表示したので、セルフ[35]に「1」を設定。 |
|
|
|
|
98 |
システム変数[10]に「1」を設定し、
続けて【文章の表示】が実行された時の次の文章の表示開始時間を1フレームとします。 |
|
|
|
100-107 |
◇上記以外 |
メッセージウィンドウを表示しない場合は分岐。 |
|
|
|
|
101-105 |
▼ 表示なし(0)の場合
▼ 隠す座標へ移動 |
メッセージウィンドウを表示している場合は、
画面下(画面の外)へスクロールして、メッセージウィンドウを隠します。 |
|
|
|
|
106 |
ウィンドウを消去したので、セルフ[35]に「0」を設定。 |
|
|
|
|
107 |
システム変数[10]に「1」を設定し、
続けて【文章の表示】が実行された時の次の文章の表示開始時間を1フレームとします。 |
|
|
|
113-117 |
▼ ――――――――――――――――――――――――――――――――
▼ 顔グラフィックの消去+表示処理
▼ ――――――――――――――――――――――――――――――――
▼ まず今表示されてる顔グラフィックを消去 |
現在表示中の顔グラフィックを消去します。 |
|
|
|
118-171 |
■条件分岐(変数): 【1】 CSelf49[顔グラフィック番号] が 2 以上
▼ 顔番号が2以上なら顔グラフィック表示
■条件分岐(文字): 【1】 CSelf8[顔画像ファイル]が "" 以外 |
顔グラフィックを表示する場合は分岐し、さらにシステムDB[24:顔グラフィック名]に
顔グラフィックの画像アドレスが設定されている場合は分岐。 |
|
|
|
|
124-128 |
▼
▼ 新しいピクチャのサイズから初期表示座標を算出
▼ 新しいピクチャを表示する |
顔グラフィックの表示で使うピクチャ番号をセルフ[21]に設定。 |
設定されるピクチャ番号は、セルフ[90]の値で決まります。
セルフ[90] |
0 |
1 |
2 |
ピクチャ番号 |
19501 |
19502 |
19503 |
|
|
|
|
|
129-133 |
▼ システム設定の メッセージ顔グラフィック 拡大率を反映 |
ユーザーDB[17:システム設定]の項目[25:メッセージ 顔グラフィック倍率]の拡大率で
顔グラフィックを表示。 |
|
|
|
|
134-152 |
■条件分岐(変数): 【1】 CSelf23[拡大率(横)] が 0 と同じ |
ユーザーDB[17:システム設定]の項目[25:メッセージ 顔グラフィック倍率]の設定が
「[0]自動設定の表示倍率で表示」の場合は分岐。 |
|
|
|
|
|
136-138 |
▼ 拡大率0=標準サイズに合わせる |
読み込んだ顔グラフィックの画像のサイズをセルフ[10〜11]に代入。
但し145-146行目にセルフ[10〜11]への代入設定があるため、この設定は意味がありません。 |
|
|
|
|
|
139-143 |
▼ 顔の枠のサイズを計算 |
ゲーム画面のサイズ[320×240[倍]]の時に「96×96ピクセル」で表示する場合で、
現在のゲーム画面のサイズに合わせて顔グラフィックの画像サイズをセルフ[10〜11]に設定。
例えばゲーム画面のサイズ[640×480]の場合は「192×192ピクセル」になります。 |
|
|
|
|
|
144-150 |
▼ 顔の表示を、枠に合わせる場合 |
「顔グラフィックの設定サイズ×100÷顔グラフィックの画像サイズ」で、
設定サイズ(セルフ[10〜11])に入る拡大率をセルフ[23〜24]に設定。 |
例えば設定サイズ「96×96ピクセル」で画像サイズが「120×120ピクセル」の場合、 「96×100÷120」で「80」となり、顔グラフィックの画像を拡大率「80%」で表示します。 |
|
|
|
|
153-159 |
▼ 表示元の座標を計算 |
「顔グラフィックの縦画像サイズ×横拡大率÷100」で、
顔グラフィックのゲーム画面上の画像サイズを算出し、画像サイズをセルフ[44]に加算。
この設定により、
画面の右端から更に画像サイズ分だけ画面の外のX座標がセルフ[44]に設定されます。 |
なお、「顔グラフィックの縦画像サイズ×横拡大率÷100」の計算で、
画像サイズの取得は縦サイズで、拡大率は横の拡大率を取得している意味は不明。 |
|
|
|
|
160 |
ゲーム画面の外(セルフ[44]が示すX位置)に顔グラフィックを移動。
▼表示イメージ(顔グラフィックは「位置:右下」で表示しています)
|
|
|
|
|
161-164 |
▼ 表示先へと移動 |
3つの【ピクチャ移動】で徐々に移動速度を落としながら移動。
▼画面サイズが[640×480]の場合の1フレーム単位の移動量
移動開始からのフレーム時間 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
1フレームの移動量(ピクセル) |
38 |
38 |
39 |
15 |
15 |
9 |
9 |
10 |
9 |
10 |
|
|
|
|
|
165-167 |
▼ ピクチャカウンタ+1 |
ここの設定により、128行目で設定する顔グラフィックのピクチャ番号が次の番号になります。 |
|
176-178 |
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 消去処理
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ |
|
179-228 |
■条件分岐(変数): 【1】 CSelf35[ウィンドウ表示中フラグ] が 0 以外
■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ |
セルフ[35]が「1(ウィンドウ表示中)」の場合は分岐し、
さらにシステム変数[12]が「0(文章を表示していない)」の場合は分岐。 |
|
|
183 |
▼ もし開いてる状態なら、数フレーム待って、なければ閉じる。 |
|
|
184-192 |
■回数付きループ [ 3 ]回 |
ウェイト中に再びが【文章の表示】が実行されないかをチェック。 |
|
|
|
185-189 |
■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ |
再び【文章の表示】が実行された場合は分岐。 |
|
|
|
|
187 |
●ラベル「ウィンドウ表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>> |
75行目へジャンプし、再びメッセージウィンドウを表示する。 |
|
|
193 |
▼ 値を初期化 |
|
|
194 |
システム変数[10]に「9」を設定し、次回【文章の表示】を表示する時に、
メッセージウィンドウが画面下から出てきたら、文字列を表示するように設定。 |
|
|
195 |
セルフ[48]に「-1(現在顔グラフィックは表示されていない)」を設定。 |
|
|
196-201 |
■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ |
【文章の表示】が実行されていない場合は分岐し、
システム変数[0]に「1(ウィンドウ表示&顔グラフィック表示設定なし)」を設定。 |
|
|
202-205 |
▼ 隠す座標へ移動 |
メッセージウィンドウを画面下(画面の外)へ移動させて、見えない状態にする。 |
|
|
206 |
▼ 完全に消えたら表示フラグをオフに |
|
|
207-215 |
■回数付きループ [ 6 ]回 |
ウェイト中に再びが【文章の表示】が実行されないかをチェック。 |
|
|
|
208-212 |
■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ |
再び【文章の表示】が実行された場合は分岐。 |
|
|
|
|
210 |
●ラベル「ウィンドウ表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>> |
75行目へジャンプし、再びメッセージウィンドウを表示する。 |
|
|
216-217 |
▼ 消去する |
メッセージウィンドウを消去する。 |
|
|
218-222 |
▼ 顔グラフィックも消去する |
顔グラフィック用のピクチャを消去。 |
|
|
223-224 |
▼ ウィンドウが消えたので、次メッセージの待ち時間を元に戻す |
セルフ[35]に「0(メッセージウィンドウを表示していない)」を設定。 |