WOLF RPGエディター(ウディタ)[3.175]/基本システム【サイトトップへ戻る】
■コモンイベント[064:X[共]万能ウィンドウ描画処理]の解説
(更新:2023/04/24)


コモンイベント[064:X[共]万能ウィンドウ描画処理]について解説します。


ショートカット
■コモンイベント[064:X[共]万能ウィンドウ描画処理]って何?
■選択項目名の文字列の設定
■こうゆう時にこのコモンイベントを改造する
■[入力の数/結果を返す]について
■コモンイベント呼び出しの一覧
■セルフ変数の一覧
■イベントコマンドの解説

基本システムに関する説明は別ページに記載しています。
【基本システムに関する説明ページを見る】

万能ウィンドウの基本情報は別ページに記載しています。
【万能ウィンドウの基本情報のページを開く】

コモンイベントの一覧と補足説明のページも用意しています。
【コモンイベントの一覧と補足説明のページを開く】


  
■コモンイベント[064:X[共]万能ウィンドウ描画処理]って何?

コモンイベント[064:X[共]万能ウィンドウ描画処理]では、万能ウィンドウの表示(カーソル表示)や消去などを処理します。

万能ウィンドウのキー操作などの処理はコモンイベント[065:X[共]万能ウィンドウ選択実行]で行っており、
キー操作で万能ウィンドウの表示状態が変わった時には、
コモンイベント[065:X[共]万能ウィンドウ選択実行]からコモンイベント[064:X[共]万能ウィンドウ描画処理]を呼び出して、
万能ウィンドウの表示を更新します。



万能ウィンドウを表示する場合は、事前に可変DB[19:万能ウィンドウ一時DB]の表示するデータを入力し、
可変DB[18:基本システム用変数]データ[8〜18]に万能ウィンドウの表示位置などを設定した上で、
このコモンイベント[064:X[共]万能ウィンドウ描画処理]を呼び出して万能ウィンドウを表示してください。

【可変DB[18:基本システム用変数]のデータ[8〜18]の説明を見る】
【可変DB[19:万能ウィンドウ一時DB]の説明を見る】



縦にスクロールする場合、元々表示されていた選択項目はそのまま活かし、
スクロールによって新たに表示された選択項目のみを表示する仕様になっています。

例えば、下に1つスクロールした場合は、新たに表示された一番下の行だけを新規で表示し、
一番下以外の選択項目は上にスクロールするだけで、表示自体はそのまま流用します。

▼下に1つスクロールした場合



▲トップへ戻る▲


  
■項目名の文字列の設定

項目名と数値の表示は、1枚のピクチャにまとめて設定しています。

▼項目1つごとに1枚のピクチャで表示


この「項目名+数値」を1つのピクチャで表示するために、704行目【ピクチャ表示】の設定では、
特殊文字」を駆使した複雑な表示設定になっています。
【特殊文字の説明を見る】



以下は文字列設定の解説です。

文字列 処理内容 処理結果見本
\f[\cself[19]]\cself[7]
\ax[\cself[12]]
<R>\ay[0]\cself[6]
まず項目名を表示します。
\f[\cself[19]]\cself[7](改行)
\ax[\cself[12]]

<R>\ay[0]\cself[6]
改行して2行目に移動し、
次に表示する文字の表示位置を右に移動します。
\f[\cself[19]]\cself[7]
\ax[\cself[12]](改行)
<R>
\ay[0]\cself[6]
改行して3行目に移動し、
3行目の文字設定を右寄せの設定にします。
\f[\cself[19]]\cself[7]
\ax[\cself[12]]
<R>\ay[0]\cself[6]
次に表示する位置の「Y表示位置=0」にして、
1行目に移動させます。
\f[\cself[19]]\cself[7]
\ax[\cself[12]]
<R>\ay[0]
\cself[6]
数値部分を表示し、
これで「項目名+数値」の表示になりました。


▲トップへ戻る▲


  
■こうゆう時にこのコモンイベントを改造する

以下のような改造を行いたい時にこのコモンイベントを改造します。

◆表示仕様を変えたい。
 ウィンドウの表示位置や表示サイズなどは可変DB[18:基本システム用変数]で設定してください。

◆スクロールの仕様を変えたい。

◆フォントサイズを変えたい。

◆使用するピクチャ番号(15000〜15208)を変えたい。
 説明文のピクチャ番号(15002)を変える場合は、
 コモンイベント[066:X[共]万能ウィンドウ説明欄変更]の方のピクチャ番号も変えてください。

万能ウィンドウの処理を改造すると、万能ウィンドウを使っている様々な場面に影響する上、
処理構造がかなり複雑なので、改造の際は注意してください。


▲トップへ戻る▲


  
■[入力の数/結果を返す]について

コモンイベント[064:X[共]万能ウィンドウ描画処理][入力の数/結果を返す]の設定は、
アイテム選択画面やお店の画面などの基本システム内の処理は、必要に応じて自動的に行いますので、
基本システムの利用者は何も設定する必要はありません。

オリジナルの表示設定で万能ウィンドウを使用する場合のみ、[入力の数/結果を返す]の設定を行ってください。

▼数値1/コモンセルフ0「処理モード」

処理方法を設定。
処理内容 説明
[0]表示 万能ウィンドウを表示します。
[2]表示[戦闘コマンド用] [通常攻撃][特殊技能]などを選択する万能ウィンドウを表示します。
[1]更新(スクロール+カーソル描画) アイテム選択画面などでの選択項目の上下スクロールやカーソルの表示を行います。
[-1]消去 万能ウィンドウを消去します。
▼数値2/コモンセルフ1「カーソル位置」

カーソルの位置を設定します。
設定値は可変DB[19:万能ウィンドウ一時DB]データIDです。
▼数値3/コモンセルフ2「[表示]>説明欄」

説明欄の表示方法を設定します。
設定 説明・表示見本
[0]表示しない 説明欄は表示しません。
[1]最上部に横幅最大表示 説明欄を横幅最大で画面上部に表示。
[2]最下部に横幅最大表示 説明欄を横幅最大で画面下部に表示。
[3]ウィンドウの上に表示 万能ウィンドウの横幅のサイズで、
万能ウィンドウの上に説明欄を表示。
[4]ウィンドウの下に表示 万能ウィンドウの横幅のサイズで、
万能ウィンドウの下に説明欄を表示。
▼数値4/コモンセルフ3「[表示]>エフェクト」

ウィンドウを表示する時のウィンドウの開き方を設定します。
設定 説明・動作イメージ
[0]なし パッと表示されます。
[1]左上から展開 左上から徐々に表示します。
[2]左下から展開 左下から徐々に表示します。
[3]右上から展開 右上から徐々に表示します。
[4]右下から展開 右下から徐々に表示します。
[5]中央上から展開 上から下へ徐々に表示します。
[6]中央下から展開 下から上へ徐々に表示します。


▲トップへ戻る▲


  
■コモンイベント呼び出しの一覧

コモンイベント[064:X[共]万能ウィンドウ描画処理]を呼び出しているコモンイベントの一覧です。

コモンイベント[064:X[共]万能ウィンドウ描画処理]を呼び出しているコモンイベント
コモンイベント(ID順) 処理内容
065:X[共]万能ウィンドウ選択実行 カーソル移動時の表示更新時に呼び出されます。
085:X[移]┣ お店 描画 お店の画面の商品の一覧を表示する時に呼び出されます。
093:X[移]装備画面描画 装備画面を表示する時に呼び出されます。
109:X[移]装備欄_選択実行 装備画面の操作中に装備品の一覧を更新する時に呼び出されます。
128:X┣[移]アイテム欄実行 移動中にアイテムの一覧を表示する時に呼び出されます。
129:X┣[移]技能欄実行 移動中に技能の一覧を表示する時に呼び出されます。
158:X[戦]アイテム選択実行 戦闘中にアイテムの一覧を表示する時に呼び出されます。
159:X[戦]技能選択実行 戦闘中に技能の一覧を表示する時に呼び出されます。
191:X┣◆行動内容のセット [戦闘]or[逃走]の選択肢を表示する時に呼び出されます。
192:X┃┣◆味方コマンド選択 [通常攻撃]or[特殊技能]の選択肢を表示する時に呼び出されます。

【コモンイベント呼び出しの一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■セルフ変数の一覧

コモンイベント[064:X[共]万能ウィンドウ描画処理]のセルフ変数の一覧です。

セルフ変数
番号 名前 使用内容
0 処理モード 処理方法を設定。
0 表示
1 表示を更新(カーソル移動用)
2 戦闘コマンド用の表示
-1 消去
1 [2]カーソル位置 カーソルの表示位置を設定。
2 説明欄モード 説明枠をどのように表示するのかを設定。
0 表示しない
1 最上部に横幅最大表示
2 最下部に横幅最大表示
3 ウィンドウの上に表示
4 ウィンドウの下に表示
3 [表示]>エフェクト 万能ウィンドウを表示する際、どのように表示するのかを設定。
0 なし(瞬間表示)
1 左上から展開
2 左下から展開
3 右上から展開
4 右下から展開
5 中央上から展開
6 中央下から展開
5 説明文 可変DB[19:万能ウィンドウ一時DB]項目[6:説明文]を取得。
6 付与文字列 可変DB[19:万能ウィンドウ一時DB]項目[3:残り個数/消費ポイント]の前後に、
可変DB[19]項目[4:付与文字列[前]][5:付与文字列[後]]を設定する時に使用。
7 表示項目名 可変DB[19:万能ウィンドウ一時DB]項目[0:項目文 ]を取得。
8 ウィンドウ画像ファイル ユーザーDB[16:画像/音声設定]項目[0:ウィンドウ画像ファイル]を取得。
9 カーソル画像ファイル ユーザーDB[16:画像/音声設定]項目[1:カーソル画像ファイル]を取得。
10 一時変数A ピクチャ番号の設定やX表示位置の設定など、様々な用途で使用。
11 一時変数B ピクチャ番号の設定やY表示位置の設定など、様々な用途で使用。
12 一時変数C 縦スクロール関連の設定やスクロールバーの表示設定などで使用。
13 一時変数D 縦スクロールを実行するかどうかの判断時やスクロールバーのX表示位置で使用。
14 一時変数E 表示位置の補正に使用。
18 ミニフォントサイズ 可変DB[18:基本システム用変数]データ[6:システムミニフォントサイズ]を取得。
19 基本フォントサイズ 可変DB[18:基本システム用変数]データ[5:システム基本フォントサイズ]を取得。
20 基本ピクチャ番号 万能ウィンドウを表示するピクチャ番号[15000]を設定。
21 一時ピクチャ番号 ピクチャの処理時に一時的にピクチャ番号を設定する時に使用。
22 表示X 万能ウィンドウのX表示位置を設定。
23 表示Y 万能ウィンドウのY表示位置を設定。
24 横サイズ 万能ウィンドウの横サイズを設定。
25 縦サイズ 万能ウィンドウの縦サイズを設定。
26 横項目数 一覧の横の選択項目数を設定。
27 縦項目数 一覧の縦の選択項目数を設定。
29 全更新フラグ 一覧の選択項目を全て表示し直す場合は「1」を設定。
30 説明ウィンドウX 説明文を表示するウィンドウのX表示位置を設定。
31 説明ウィンドウY 説明文を表示するウィンドウのY表示位置を設定。
32 説明ウィンドウ横サイズ 説明文を表示するウィンドウの横サイズを設定。
33 説明ウィンドウ縦サイズ 説明文を表示するウィンドウの縦サイズを設定。
34 [保持]カーソル基本X カーソルの左上の選択項目のX表示位置を設定。
35 [保持]カーソル基本Y カーソルの左上の選択項目のY表示位置を設定。
36 [保持]カーソル横幅 カーソルの横幅を設定。
37 [保持]カーソル縦幅 カーソルの縦幅を設定。
38 [保持]カーソル移動横幅 選択項目1つ分のカーソルの横の移動量を設定。
39 [保持]カーソル移動縦幅 選択項目1つ分のカーソルの縦の移動量を設定。
40 全項目数 万能ウィンドウの選択項目数を設定。
41 一時項目表示X 最初のエフェクト表示で使用する他、カーソルや選択項目のX表示位置の設定する時に使用。
42 一時項目表示Y 最初のエフェクト表示で使用する他、カーソルや選択項目のY表示位置の設定する時に使用。
43 処理中個数 一覧の左上から数えたカーソルの位置を設定したり、
選択項目を表示する時に可変DB[19:万能ウィンドウ一時DB]データIDを設定する時に使用。
44 スクロール位置 可変DB[18:基本システム用変数]データ[15:万能ウィンドウ縦スクロール位置]を取得。
45 スクロール変化量 前回の縦スクロール位置(セルフ[44])からどれくらいスクロールしたのか(行数)を設定。
46 単体項目表示フラグ 選択項目を新規で表示するかどうかを設定。
選択項目が20個ある場合は、
1回の処理で20回、セルフ[46]に「0」か「1」が設定されます。
万能ウィンドウを初めて表示した時には、全ての選択項目が新規表示になるので、
全ての選択項目の設定でセルフ[46]が「1」になります。
カーソル移動時に画面がスクロールしない場合は、選択項目の表示状態は変わらないので、
全ての選択項目の設定でセルフ[46]が「0」になります。
カーソル移動時に画面がスクロールして、新たに2つの選択項目が新規で表示される場合は、
その追加される2つを処理する時のみ「1」になり、他の選択項目の処理では「0」になります。
47 数値表示シフト量 左寄せ表示の項目名から右寄せの数値表示へ文字の入力位置を変える時の移動量を設定。
基本的にカーソルの横幅(セルフ[36])を設定しますが、
ゲーム画面のサイズが[320×240[x2]]の場合は、文字表示を[640×480]で処理するため、
カーソルの横幅の2倍(セルフ[36]×2)で設定します。
48 項目表示元Y 選択項目を新規に表示する時に、スクロール移動のスタート地点となるY表示位置を設定。
画面がスクロールする時には、
セルフ[48]のY位置からセルフ[42]のY位置へスクロールして新規表示が実行されます。
既に表示済みの選択項目の処理では「セルフ[42]セルフ[48]」で処理されます。
49 項目横拡大率 「項目名+数値」を表示する時の横の拡大率を設定。
通常は「100(横幅100%)」を設定しますが、
カーソルの横幅よりも「項目名+数値」の横幅の方が大きい場合は、
横の拡大率(セルフ[49]の値)を小さくして、
カーソルの横幅に項目の表示が収まるようにします。
▼設定例
50 上下矢印X スクロール可能を示す[▲][▼]のX表示位置を設定する時に使用。
51 上下矢印Y スクロール可能を示す[▲][▼]のY表示位置を設定する時に使用。
53 色指定R 選択項目の表示色(R)を設定。
100 項目選択可能
50 項目選択不可
54 色指定G 選択項目の表示色(G)を設定。
100 項目選択可能
50 項目選択不可
55 色指定B 選択項目の表示色(B)を設定。
100 項目選択可能
50 項目選択不可
57 一時不透明度 万能ウィンドウを初めて表示する時の不透明度の設定で使用。
255 エフェクトなし(瞬間表示の時)
0 エフェクトあり(「0」から徐々に「255」にして、
徐々に選択項目が表示されるようにする)
60 項目左寄せフラグ(オフ=中央) 万能ウィンドウを初めて表示する時の不透明度の設定で使用。
0 中央表示(戦闘コマンド用)
1 左寄せ
61 スクロール表示フラグ 万能ウィンドウ右側のスクロールバーを表示するかどうかを設定。
0 表示しない(戦闘コマンド用)
1 表示する
63 ウィンドウ不透明度 万能ウィンドウを表示する時の不透明度を設定。
180 戦闘コマンド表示時
255 通常時
64 項目高速表示 万能ウィンドウを表示する時に、選択項目を表示するタイミングを設定。
0 エフェクトありの場合、ウィンドウ表示開始の5フレーム後に選択項目の表示を開始
1 ウィンドウ表示開始と同時に選択項目を表示(戦闘コマンド用)
66 一時仮想全項目数 縦スクロールが必要かどうかを判断する計算処理の中で使用。
88 座標倍率X[x10] 可変DB[18:基本システム用変数]データ[97:座標倍率X[x10]]を取得。
89 座標倍率Y[x10] 可変DB[18:基本システム用変数]データ[98:座標倍率Y[x10]]を取得。

【変数の一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■イベントコマンドの解説

イベントコマンドの解説を行います。

なお、見た目で設定内容が分かるような簡単なイベントコマンドの解説は省略しています。

処理内容
38-51 様々な数値を初期化。
52-56 ■条件分岐(変数): 【1】 CSelf0[処理モード] が 0 と同じ
セルフ[0]が「0(通常表示)」の場合は分岐。
  54 ▼ 通常モード
  55 セルフ[60]に「1(左寄せ)」を設定。
選択項目を中央表示(セルフ[60]=0) 選択項目を左寄せ表示(セルフ[60]=1)
  56 セルフ[61]に「1(スクロール表示する)」を設定。
58-66 ◇分岐: 【2】 [ CSelf0[処理モード] が 2 と同じ ]の場合↓
セルフ[0]が「0(戦闘コマンド用で表示)」の場合は分岐。
  59 ▼ 戦闘コマンド用
  60 セルフ[60]に「0(中央表示)」を設定。
  61 セルフ[61]に「0(スクロール表示しない)」を設定。
  62 セルフ[0]に「0」を設定し、以降は通常の表示処理として実行。
  63 セルフ[63]に「180(不透明度)」を設定。
  64 セルフ[64]に「1(瞬間表示)」を設定。
67-69 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ ここから実処理開始
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
70-112 ■条件分岐(変数): 【1】 CSelf0[処理モード] が -1 と同じ
セルフ[0]が「-1(消去)」の場合は分岐。
  72-74 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「消去」モードの場合
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  77-80 ▼ カーソルを消す
カーソル画像を瞬間的に消します。
  81 ▼ それ以外を消す
  85-109 ■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 1 以上
エフェクトが設定されている場合は分岐。
    87 ▼ エフェクトが指定されてたらそれに応じてメインウィンドウを消す
    89-94 ■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 4 以下
角から徐々に表示されるエフェクトの場合は分岐。
      91-95 ▼ 拡大率0%にしてから消去
ウィンドウの「拡大率0%」&「不透明度0」を徐々に変更して消去。
ディレイを設定した3つの設定を行う事で、最初は勢いよく消えていき、
徐々に消える速度を弱めながら3段階の速度で消していきます。
    96-100 ◇分岐: 【2】 [ CSelf3[[表示]>エフェクト] が 5 以上 ]の場合↓
上か下から徐々に表示されるエフェクトの場合は分岐。
      97-100 ▼ 上か下にシュンと消えて終了
ウィンドウの「縦の拡大率0%」&「不透明度0」を徐々に変更して消去。
  106-107 ◇上記以外
エフェクトが設定されていない場合は「上記以外」へ分岐し、全ての画像を瞬間的に消去。
  110 消去処理が終了したので、【イベント処理中断】を実行。
113-380 ■条件分岐(変数): 【1】 CSelf0[処理モード] が 0 と同じ
セルフ[0]が「0(表示)」の場合は分岐。
  115-117 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「表示」モードの場合
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  119-128 ▼ 基本システム用変数からウィンドウ表示サイズなどを取得
ウィンドウサイズなどを取得。
  129-155 ▼ 数値が0ならデフォルトの値を代入
各数値が「0」の場合はそれぞれで分岐し、初期値を設定。
  158-159 ▼ 説明文欄の表示 ないしメインウィンドウへの補正
▼ ピクチャ番号は「基本ピクチャ番号+1」
  160-166 ■条件分岐(変数): 【1】 CSelf2[説明欄モード] が 0 と同じ
セルフ[2]が「0(説明欄を表示しない)」の場合は分岐。
    162 ▼ 説明欄を表示しない (消去する)
    163-166 説明欄のウィンドウと文字列のピクチャを消去。
  168-190 ◇分岐: 【2】 [ CSelf2[説明欄モード] が 1 と同じ ]の場合↓
セルフ[2]が「1(最上部に横幅最大表示)」の場合は分岐。
    169-177 ▼ 最上部に最大幅で説明欄を表示
▼ 座標・サイズを計算
表示位置を画面左上に設定し、
説明用ウィンドウの横幅をゲーム画面の横幅と同じサイズにして、ウィンドウ画像を表示。
    178-185 ▼ 説明文の空画像を表示
説明用のウィンドウの中心位置に説明用の文字列を表示するピクチャを表示。
    186-190 ▼ もしメインウィンドウ部分に影響が出るならサイズ補正する
一覧表示用のウィンドウに説明用のウィンドウが重なる場合は、
一覧表示用のウィンドウのY表示位置(セルフ[23])を下げて、重ならないようにする。
補正しない場合 補正する場合
  192-215 ◇分岐: 【3】 [ CSelf2[説明欄モード] が 2 と同じ ]の場合↓
セルフ[2]が「2(最下部に横幅最大表示)」の場合は分岐。
    193-202 ▼ 最下部に最大幅で説明欄を表示
▼ 座標・サイズを計算
表示位置を画面左下から説明用ウィンドウの縦幅分を減算した位置に設定し、
説明用ウィンドウの横幅をゲーム画面の横幅と同じサイズにして、ウィンドウ画像を表示。
    203-210 ▼ 説明文の空画像を表示
説明用のウィンドウの中心位置に説明用の文字列を表示するピクチャを表示。
    211-215 ▼ もしメインウィンドウ部分に影響が出るならサイズ補正する
一覧表示用のウィンドウに説明用のウィンドウが重なる場合は、
一覧表示用のウィンドウの縦サイズ(セルフ[25])を減らして、重ならないようにする。
  218-237 ■条件分岐(変数): 【1】 CSelf2[説明欄モード] が 3 と同じ
セルフ[2]が「3(ウィンドウの上に表示)」の場合は分岐。
    220-229 ▼ ウィンドウの上に説明欄を表示
▼ 座標・サイズを計算
一覧表示用のウィンドウと同じ横幅で、
一覧表示用のウィンドウの上にくっつく形で説明用ウィンドウの画像を表示。
    230-237 ▼ 説明文の空画像を表示
説明用のウィンドウの中心位置に説明用の文字列を表示するピクチャを表示。
  239-256 ◇分岐: 【2】 [ CSelf2[説明欄モード] が 4 と同じ ]の場合↓
セルフ[2]が「4(ウィンドウの下に表示)」の場合は分岐。
    240-248 ▼ ウィンドウの下に説明欄を表示
▼ 座標・サイズを計算
一覧表示用のウィンドウと同じ横幅で、
一覧表示用のウィンドウの下にくっつく形で説明用ウィンドウの画像を表示。
    249-256 ▼ 説明文の空画像を表示
説明用のウィンドウの中心位置に説明用の文字列を表示するピクチャを表示。
  263-266 ▼ 1.メインウィンドウ部を表示
瞬間表示で一覧表示用のウィンドウを表示。
  267-276 ■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 1 と同じ
セルフ[3]が「1(左上から展開)」の場合は分岐。
    269 ▼ 左上から表示
    270-276 画面左上から徐々に拡大して表示されるように処理します。
  278-286 ◇分岐: 【2】 [ CSelf3[[表示]>エフェクト] が 2 と同じ ]の場合↓
セルフ[3]が「2(左下から展開)」の場合は分岐。
    279 ▼ 左下から表示
    280-286 画面左下から徐々に拡大して表示されるように処理します。
  288-296 ◇分岐: 【3】 [ CSelf3[[表示]>エフェクト] が 3 と同じ ]の場合↓
セルフ[3]が「3(右上から展開)」の場合は分岐。
    289 ▼ 右上から表示
    290-296 画面右上から徐々に拡大して表示されるように処理します。
  299-308 ■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 4 と同じ
セルフ[3]が「4(右下から展開)」の場合は分岐。
    301 ▼ 右下から表示
    302-308 画面右下から徐々に拡大して表示されるように処理します。
  310-318 ◇分岐: 【2】 [ CSelf3[[表示]>エフェクト] が 5 と同じ ]の場合↓
セルフ[3]が「5(中央上から展開)」の場合は分岐。
    311 ▼ 中央上から表示
    312-318 画面上から徐々に拡大して表示されるように処理します。
  320-328 ◇分岐: 【3】 [ CSelf3[[表示]>エフェクト] が 6 と同じ ]の場合↓
セルフ[3]が「6(中央下から展開)」の場合は分岐。
    321 ▼ 中央下から表示
    322-328 画面下から徐々に拡大して表示されるように処理します。
  331-341 ▼ エフェクトがあったら表示待ちのためにウェイとする
■条件分岐(変数): 【1】 CSelf64[項目高速表示] が 0 と同じ
 ▼ ただし高速表示オフの場合のみ
 ■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 1 以上
戦闘コマンド用ではない場合は分岐し、
徐々に表示(エフェクト)が設定されている場合はさらに分岐し、
【ウェイト:5フレーム】を実行する。
  342-347 ▼ 2.カーソルの基本位置を設定する
▼ (このカーソル用座標値は、次にこのコモンで「更新」されたときに使用する)
万能ウィンドウの左上にある最初の選択項目の表示位置をセルフ[34〜35]に設定。
  348-354 ▼ カーソルの上下左右移動幅を算出
カーソルの上下左右の移動量をセルフ[38〜39]に設定。
  355-359 ▼ カーソルの描画範囲を調節
カーソルの縦横の移動量からカーソルのサイズをセルフ[36〜37]に設定。
縦サイズは「カーソルの縦移動幅」でフォントサイズを超えないサイズで設定。
  360-363 ▼ 移動幅とカーソル縦幅から少し座標を補正
セルフ[35]に「(縦移動幅−縦カーソルサイズ)÷2」の値を加算し、
カーソルの縦の表示位置を補正。
補正なし 補正あり(1ピクセル下に移動)
  364-368 ▼ 項目名はすべて消去する
選択項目を全て消去。
  370 ▼ このまま処理モード1(更新)も実行してしまう 。項目を表示するため。
  371-376 ■条件分岐(変数): 【1】 CSelf1[カーソル位置] が -1 と同じ
カーソル位置の設定が無い場合は分岐し、
可変DB[18:基本システム用変数]データ[15:万能ウィンドウ縦スクロール位置]に「0」を設定し、
縦スクロールの位置を初期化。
  377 セルフ[0]に「1(更新(スクロール+カーソル描画))」を設定。
この設定により、382行目
■条件分岐(変数): 【1】 CSelf0[処理モード] が 1 と同じ
で分岐し、選択項目の表示処理などが実行されます。
  378 セルフ[29]に「1」を設定し、選択項目を全て表示し直す設定にする。
382-872 ■条件分岐(変数): 【1】 CSelf0[処理モード] が 1 と同じ
選択項目や選択カーソルの表示を更新する場合は分岐。
  384-386 ▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 「更新」モードの場合
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
  388-394 ▼ まずカーソル位置が個数よりオーバーしてたら減らす
カーソル位置が存在しない選択項目の位置になっている場合は、
最後にある選択項目の位置になるように修正します。
例えば項目個数が「40」の場合、カーソル位置は「0〜39」になり、上限は「39」になります。
そのため、「39」を超えるカーソル位置の場合は「39」に修正されます。
  395 ▼ カーソルの位置を再設定 ここで縦スクロール量を計算し直す
  399-402 カーソル位置の行数−縦スクロール位置+1」をセルフ[12]に設定し、
縦スクロールしたあとの画面の上段を「1行目」とした時の行数が設定されます。
  407-430 ■条件分岐(変数): 【1】 CSelf12[一時変数C] が CSelf27[縦項目数] 以上
画面最下部にある選択項目を選択していて、さらにその下へカーソルを移動しようとした場合は分岐。
    409-410 ▼ 今見えてる部分より下を選ぼうとした場合
▼ ただし、一番下が見えてる場合はもう動かさない
    412-413 全項目数+1行分の個数+1」をセルフ[66]に設定。
    414-415 セルフ[13]に「セルフ[66]÷横項目数−縦項目数」を設定。
これにより、カーソル位置を表示するためのスクロール位置が算出されます。
    416-426 ■条件分岐(変数): 【1】 CSelf13[一時変数D] が CSelf11[一時変数B] 超
一覧を下へスクロールさせる必要がある場合は分岐し、
可変DB[18:基本システム用変数]データ[15:万能ウィンドウ縦スクロール位置]
セルフ[45](スクロールさせる量)を加算。
  433-467 ■条件分岐(変数): 【1】 CSelf45[スクロール変化量] が 0 と同じ
縦スクロールをもっと下げる処理を行っていない場合は分岐。
    437 カーソルの行数(カーソル位置÷横項目数)」をセルフ[10]に設定。
    438 表示画面の上段からの行数(カーソルの行数−縦スクロール位置)」をセルフ[12]に設定。
    443-463 セルフ[12]に「減算1」を設定した上で、
セルフ[12]が「0未満(一覧を上へスクロールさせる必要がある)」の場合は分岐し、
セルフ[11]が「1以上(上にスクロールする事ができる)」の場合は分岐。
      446-448 ▼ 今見えてる画面より上を選ぼうとした場合
▼ スクロールを上に
▼ ただし、一番上が見えている場合はもう動かさない
      451 セルフ[45]に縦スクロールの調整行数(セルフ[12])を設定。
      452 可変DB[18:基本システム用変数]データ[15:万能ウィンドウ縦スクロール位置]
縦スクロールの調整行数を加算。
セルフ[12]はマイナス値なので、
加算と言ってもデータ[15:万能ウィンドウ縦スクロール位置]が減算されます。
      453 「下限0」で縦スクロールの位置がマイナスにならないように設定。
  472-475 ▼ カーソル位置を算出
可変DB[18:基本システム用変数]データ[15:万能ウィンドウ縦スクロール位置]セルフ[43]に取得し、
カーソル位置−縦スクロール位置×横項目数」をセルフ[43]に設定。
  476-479 ▼ 横位置を算出
セルフ[43]を「横項目数を余剰」した値をセルフ[41]に設定し、
セルフ[41]×カーソル移動横幅+左上カーソルX表示位置」をセルフ[41]に設定。
  480-483 ▼ 縦位置を算出
セルフ[43]を「縦項目数を余剰」した値をセルフ[42]に設定し、
セルフ[42]×カーソル移動縦幅+左上カーソルY表示位置」をセルフ[42]に設定。
  484 ▼ カーソルを表示
  487-506 ■条件分岐(変数): 【1】 CSelf1[カーソル位置] が 0 以上
カーソル位置の設定がある場合は分岐。
    489-493 ▼ カーソル位置が0以上なら表示する
カーソルの表示位置が選択項目の中心になるようにセルフ[10〜11]に設定。
    494-497 ▼ 中央基点にして、拡大率をちょっとだけ大きくしている
カーソルの横サイズをゲーム画面の横サイズの「64分の1」だけ大きくし、
カーソルの縦サイズをゲーム画面の縦サイズの「128分の1」だけ大きくし、
【ピクチャ表示】でカーソル画像を表示。
    498 【ピクチャエフェクト】を使って、カーソル画像を点滅させます。
    499-500 ちょっとだけ大きくしたセルフ[36〜37]のサイズを元のサイズに戻す。
  502-504 ◇上記以外
カーソル位置が設定されていない場合は分岐し、カーソル画像を消去。
  510 ▼ ここから項目描画処理
  513 ▼ 項目を全再描画
  516-518 ▼ 繰り返し回数を計算
セルフ[40]から「縦スクロール位置×横項目数」を減算し、
横項目数×縦項目数」を上限として、表示できる項目数を超える表示処理を行わないように設定。
  519 ▼ 2.02追加 もし1ページまるごとスクロールする場合は全更新にする
  521-530 ■条件分岐(変数): 【1】 CSelf10[一時変数A] が CSelf40[全項目数] 以上
前回からの比較で縦スクロールのスクロール行数が1ページまるごと更新の場合は分岐。
    523-524 セルフ[29]に「1」を設定して全選択項目の更新(表示し直し)をONにする。
セルフ[45]に「0」を設定して縦スクロールの変化値を初期化。
    525-528 選択項目のピクチャを全て消去。
  531-532 ▼ 処理開始個数を計算
縦スクロール×横項目数」をセルフ[43]に設定。
これは表示される左上の選択項目が1つ目の選択項目から数えて何項目目になるのかを設定。
例えば横に2つの選択項目が表示される場合、最初の画面では…
[項目0][項目1]
[項目2][項目3]
[項目4][項目5]

などと表示されます。
そして画面の最下部にカーソルを置き、さらに下キーを押して画面をスクロールさせると…
[項目2][項目3]
[項目4][項目5]
[項目6][項目7]

などと表示され、画面左上に表示される選択項目が「項目2」になります。
この場合はセルフ[43]に「2」が設定されます。
  533 ▼ ここでスクロールによる補正を加える
  534-537 ■条件分岐(変数): 【1】 CSelf45[スクロール変化量] が -1 以下
上にスクロールさせる場合は分岐。
    536-537 ▼ 上にスクロール移動してたら、処理する全項目数を「下に消えた段」だけ加算
縦スクロール変化量×横項目数」をセルフ[40]に減算。
なお、セルフ[45]はマイナス値なので、マイナス値の値を「減算」と言う事で、
結果的にセルフ[40]の値は増える設定になっています。
  539-542 ◇分岐: 【2】 [ CSelf45[スクロール変化量] が 1 以上 ]の場合↓
下にスクロールさせる場合は分岐。
    540-542 ▼ 下にスクロール移動してたら処理する全項目数を
 「上に消えた段」だけ加算+処理開始個数を上に消えた段だけ戻す
縦スクロール変化量×横項目数」をセルフ[40]に加算。
縦スクロール変化量×横項目数」をセルフ[43]に減算。
  546 ▼ 数値表示部のシフト量を計算(後の \ax[ ] 内で使用する)
▼ バージョンによってシフト量を分岐 Ver3.00修正
  548-566 ■条件分岐(変数): 【1】 Sys115:[読]Game.exeバージョン(x100) が 300 未満
ウディタ[3.00]以前の場合は分岐。
    550-556 カーソル画像の横幅をセルフ[47]に設定。
なお、ゲーム画面のサイズが[320×240[x2]]の場合、
文字の表示処理のみが[640×480]のサイズで処理されるため、
カーソルの横幅を2倍にしてセルフ[47]に設定。
  558-560 ◇分岐: 【2】 [ Sys115:[読]Game.exeバージョン(x100) が 300 以上 ]の場合↓
ウディタ[3.00]以降の場合は分岐。
    559-560 ▼ Ver3.00以降はSys119の基本画面倍率で調整 Ver3.00修正
カーソル画像の横幅をセルフ[47]に設定。
ゲーム画面のサイズが2倍の場合はカーソルの横幅を2倍に、
ゲーム画面のサイズが3倍の場合はカーソルの横幅を3倍にしてセルフ[47]に設定。
  563 ▼ 項目を一つずつピクチャで表示する
  564-758 ■回数付きループ [ CSelf40[全項目数] ]回
画面上の選択項目の移動、消去、新規表示を選択項目1つずつ処理していく。
    565-568 ▼ 横位置を算出
セルフ[41]に次に処理する選択項目のX表示位置を設定。
    569-575 ▼ 縦位置を算出
セルフ[42]に次に処理する選択項目のY表示位置を設定。
セルフ[42]の値をセルフ[48]に複製。
このセルフ[48]は、画面スクロール時に新規に選択項目を表示する時に、
そのスクロール移動のスタート地点となるY表示位置を設定する時に使います。
    576-578 ▼ 項目を表示 (最大200個まで)
今回処理する選択項目のピクチャ番号をセルフ[21]に設定。
このピクチャ番号は、縦スクロール「0」の左上の選択項目を「15009番」とし、
「15009〜15208」の範囲でピクチャ番号が使用されます。
201個目の選択項目を表示するピクチャ番号は「15209→15009」と修正されるため、
使用されるピクチャ番号は常に「15009〜15208」の範囲内となります。
    579 ▼ 表示する
    581-583 ■条件分岐(変数): 【1】 CSelf29[全更新フラグ] が 1 と同じ
全ての選択項目を新規で表示する場合は分岐。
      583 セルフ[46]に「1」を設定し、今回の選択項目を新規表示で処理。
    585-618 ◇上記以外
全ての選択項目を新規で表示しない場合は分岐。
      586-587 ▼ 次の項目を表示する必要があるのかどうかを判定
▼ まず表示する必要があるのは、上か下にスクロールした場合のみ
      588-601 ■条件分岐(変数): 【1】 CSelf45[スクロール変化量] が -1 以下
上にスクロールの場合は分岐。
        590-592 ▼ 上にスクロールした場合、新規に表示するのは一番上のスクロール段だけ
縦スクロール位置×横項目数−スクロール変化量×横項目数」をセルフ[10]に設定。
        593-601 ■条件分岐(変数): 【1】 CSelf43[処理中個数] が CSelf10[一時変数A] 未満
画面の上(表示範囲外)の場合は分岐し、セルフ[46]に「1」を設定して新規表示を行うように設定。
新規表示の選択項目をスクロール移動させるスタート地点のY表示位置をセルフ[48]に設定。
      603-616 ◇分岐: 【2】 [ CSelf45[スクロール変化量] が 1 以上 ]の場合↓
下にスクロールの場合は分岐。
        604-607 ▼ 下にスクロールした場合、新規に「表示」するのは一番下のスクロール段だけ
縦項目数×横項目数+縦スクロール位置×横項目数−スクロール変化量×横項目数
セルフ[10]に設定。
        608-616 ■条件分岐(変数): 【1】 CSelf43[処理中個数] が CSelf10[一時変数A] 以上
画面の下(表示範囲外)の場合は分岐し、セルフ[46]に「1」を設定して新規表示を行うように設定。
新規表示の選択項目をスクロール移動させるスタート地点のY表示位置をセルフ[48]に設定。
    621-708 ■条件分岐(変数): 【1】 CSelf46[単体項目表示フラグ] が 1 と同じ
選択項目を新規に表示する場合は分岐。
      623 ▼ 表示する項目名を算出
      626-629 ■条件分岐(変数): 【1】 CSelf11[一時変数B] が 0 以下
「残り個数/消費ポイント」の設定がない場合は分岐。
        628-629 可変DB[19:万能ウィンドウ一時DB]項目[5:付与文字列[後]]セルフ[6]に設定。
      631-641 ◇上記以外
「残り個数/消費ポイント」の設定がある場合は分岐。
        632 可変DB[19:万能ウィンドウ一時DB]項目[4:付与文字列[前]]セルフ[6]に設定。
        633-640 セルフ[11]の値をセルフ[6]に追加。
セルフ[11]の値が10未満の場合は、数字の前に半角スペースを設定。
        641 可変DB[19:万能ウィンドウ一時DB]項目[5:付与文字列[後]]セルフ[6]に追加。
この設定でセルフ[6]は「付与文字列[前]+残り個数/消費ポイント+付与文字列[後]」となります。
例えば「付与文字列[前]=×」「残り個数/消費ポイント=5」「付与文字列[後]=」の場合は、
[項目名 × 5 個]などと表示されます。
      644 ▼ アイテム名だけピクチャ表示して、横幅を得る
      645 セルフ[49]に「100」を設定。
このセルフ[49]には、選択項目の横の拡大率を設定し、選択項目の文字列が長い時には、
セルフ[49]の値(横の拡大率)を変えて、カーソルの横幅の範囲内に入るように調整します。
▼表示例
      647 項目名のみをピクチャで表示。
例えば [癒しの水 × 5 個]の場合は[癒しの水]だけを表示。
      649 ▼ もし文字列がカーソル横幅の一定%を超えていたら、横を縮小して調節する
      651-654 ■条件分岐(文字): 【1】 CSelf6[付与文字列]が "" と同じ
セルフ[6]に文字列が無い場合は分岐。
        653-654 ▼ 数値部がない場合は、もとの文字列がカーソル幅を超えているかどうかチェック
カーソルの横幅をセルフ[12]に設定。
      657-660 ◇上記以外
セルフ[6]に文字列がある場合は分岐。
なお、セルフ[6]に設定されている文字列は[癒しの水 × 5 個]の[× 5 個]の部分です。
        658-660 ▼ 数値部が存在する場合は、とりあえず2.5文字分の予備を取って計算
カーソルの横幅−(ゲームの横サイズ÷32)×2−(ゲームの横サイズ÷32)÷2」をセルフ[12]に設定し、
カーソルの横幅から右側に個数などを表示するスペース分を減算したものを設定。
      663 ▼ カーソル幅から溢れてたら、横拡大率を小さくする
      664-671 ■条件分岐(変数): 【1】 CSelf11[一時変数B] が CSelf12[一時変数C] 超
項目名のピクチャの横サイズがカーソルの横幅より大きい場合は分岐。
        666-667 カーソル横幅×100÷ピクチャ横幅」を算出し、
カーソルの横幅の範囲内に入る横拡大率をセルフ[49]に設定。
        668-671 ▼ シフト量も増やして調整する
横拡大率が小さくなる事で、右側の「× 5 個」を表示位置が左に寄るので、
10000÷横拡大率×シフト量(セルフ[47])÷100
を実行して、右側の「× 1 個」の表示位置を右へずらしたシフト値をセルフ[12]に設定。
      673-675 ◇上記以外
項目名のピクチャの横サイズがカーソルの横幅以下の場合は分岐。
        674-675 セルフ[47](選択項目の横幅)セルフ[12]に設定。
      678-688 ▼ この項目の表示色をここで設定
▼ 選択可能なら白に 選択不能なら紺にしている
選択項目の表示色「R=100、G=100、B=100」をセルフ[53〜55]に設定。
選択項目が選択不可の場合は「R=50、G=50、B=70」を設定。
▼選択可能と選択不可の表示例
      689 ▼ \ax[] \ay[] を駆使して、一枚のピクチャに項目名と数値を同時に埋め込む
      690-698 ■条件分岐(変数): 【1】 CSelf3[[表示]>エフェクト] が 0 と同じ
エフェクト設定が無い場合は、セルフ[57]に「255」を設定し、
初めから表示されている状態にします。
エフェクト設定がある場合は、セルフ[57]に「0」を設定し、
透明状態から表示されるようにします。
      699-703 ■条件分岐(変数): 【1】 CSelf60[項目左寄せフラグ(オフ=中央)] が 0 と同じ
選択項目を中央表示にする場合は分岐し、特殊文字「<C>」セルフ[7]に追加。
特殊文字「<C>」を設定していない 特殊文字「<C>」を設定した
      704 選択項目をピクチャで表示。
    709 ▼ スクロールによる移動処理はここで行う(「表示」後に移動指定する必要性から)
    710-713 ■条件分岐(変数): 【1】 CSelf29[全更新フラグ] が 1 と同じ
全ての選択項目を新規で表示する場合は分岐。
      704-705 ▼ 全表示時の表示演出はここで行う
表示予定の位置に選択項目を表示。
    707-745 ◇上記以外
全ての選択項目を新規で表示しない場合は分岐。
      716 ▼ スクロール移動があれば移動や消去を行う
      717-734 ■条件分岐(変数): 【1】 CSelf45[スクロール変化量] が -1 以下
上にスクロールの場合は分岐。
        720-721 ▼ 上にスクロールした場合、消去するのは一番下のスクロール段だけ
縦項目数×横項目数+スクロール位置×横項目数」を算出し、
を算出し、万能ウィンドウの表示範囲外になる項目番号をセルフ[10]に設定。
        722-727 ■条件分岐(変数): 【1】 CSelf43[処理中個数] が CSelf10[一時変数A] 以上
表示範囲外(消去する)の場合は分岐し、
画面下へ移動するピクチャの移動と不透明度「0」の速度を2段階に変えて徐々に消去。
        729-732 ◇上記以外
表示範囲内(消去しない)の場合は分岐し、
画面下へ移動するピクチャの移動速度を2段階に変えて徐々に下へ移動。
      736-751 ◇分岐: 【2】 [ CSelf45[スクロール変化量] が 1 以上 ]の場合↓
下にスクロールの場合は分岐。
        737-738 ▼ 下にスクロールした場合、「消去」するのは一番上のスクロール段だけ
スクロール位置×横項目数」を算出し、
万能ウィンドウの表示範囲内の左上になる項目番号をセルフ[10]に設定。
        739-744 ■条件分岐(変数): 【1】 CSelf43[処理中個数] が CSelf10[一時変数A] 未満
表示範囲外(消去する)の場合は分岐し、
画面上へ移動するピクチャの移動と不透明度「0」の速度を2段階に変えて徐々に消去。
        746-749 ◇上記以外
表示範囲内(消去しない)の場合は分岐し、
画面上へ移動するピクチャの移動速度を2段階に変えて徐々に上へ移動。
    756 セルフ[43]に「加算1」を設定し、次の選択項目の表示処理へ移行する。
  760 ▼ 「説明」文を表示する (表示するモードだった場合のみ)
  761-774 ■条件分岐(変数): 【1】 CSelf1[カーソル位置] が 0 以上
カーソルが画面上に存在する場合は分岐。
    763 ▼ すでに説明文用のピクチャが表示されているかどうかで判定
    766-772 ■条件分岐(変数): 【1】 CSelf10[一時変数A] が 1 と同じ
説明用のウィンドウに表示する文字列用のピクチャが使用されている場合は分岐。
    768-770 可変DB[19:万能ウィンドウ一時DB]項目[6:説明文]の文字列を説明用のピクチャで表示。
  778 ▼ 上下の矢印を表示する
  780 ▼ 上に、見えていないデータがある場合は、上に矢印を表示する
  784-789 ■条件分岐(変数): 【1】 CSelf44[スクロール位置] が 1 以上
一覧の上に表示範囲外の選択項目がある場合は分岐し、
一覧ウィンドウの上部にピクチャ[15004]で[▲]を表示。
  791-792 ◇上記以外
一覧の上に表示範囲外の選択項目が無い場合は分岐し、
[▲]を表示するピクチャ[15004]を消去。
  798 ▼ 全部表示しきれていない場合は、下に矢印を表示する
  804-810 ■条件分岐(変数): 【1】 CSelf44[スクロール位置] が 1 以上
一覧の下に表示範囲外の選択項目がある場合は分岐し、
一覧ウィンドウの下部にピクチャ[15005]で[▼]を表示。
  812-813 ◇上記以外
一覧の下に表示範囲外の選択項目が無い場合は分岐し、
[▼]を表示するピクチャ[15005]を消去。
  819 ▼ スクロールバーもどきもつけておく
  821 ▼ セルフ10が全縦項目数
  824-829 ■条件分岐(変数): 【1】 CSelf11[一時変数B] が 1 以上
横の項目設定数が「2個」の場合で…
[項目00][項目01]
[項目02][項目03]
[項目04]

のように、最後の行の横の項目数が「2個」ではない時には分岐し、セルフ[10]に「加算1」を設定。
ここのセルフ[10]には「合計行数」を設定していますが、
全項目数(5)÷横項目設定数(2)」で計算すると「2.5」となり、
小数点以下は切り捨てになるので、セルフ[10]に設定される合計行数は「2行」になります。
しかし…
[項目00][項目01]
[項目02][項目03]
[項目04]

は3行あるので、セルフ[10]は「3」である必要があります。
そのため、ここの条件分岐の設定で小数点以下を切り上げ(2.5 → 3)にしてセルフ[10]を設定します。
  832-858 ■条件分岐(変数): 【1】 CSelf61[スクロール表示フラグ] が 1 と同じ
スクロールバーを表示する場合は分岐。
    834-836 ■条件分岐(変数): 【1】 CSelf10[一時変数A] が CSelf27[縦項目数] 以下
範囲外(表示していない)の選択項目が無く、全ての選択項目が画面内に表示されている場合は分岐。
      836 スクロールバーを表示するピクチャ[15006]を消去。
    838-858 ◇上記以外
範囲外(表示していない)の選択項目がある場合は分岐。
      839 ▼ 現在の表示範囲が、縦の何割を占めるか計算し、スクロールバー長を算出
      840-841 縦項目数×100÷全行数」をセルフ[11]に設定。
これは全行数を「100%」とした時にウィンドウ画面上に何パーセントの行を表示しているのかを算出。
例えば、全行数が「50行」で、画面上に表示している行数が「10行」だった場合、
全体の20%の行が画面上に表示されているので、セルフ[11]には「20」が設定されます。
      842-843 ウィンドウの縦サイズ×表示できる行数%÷100」で算出した
スクロールバーの長さをセルフ[11]に設定。
例えば、ウィンドウの縦のサイズが「300ピクセル」で、
画面上に表示できる行数のパーセントが「20%」だった場合、
スクロールバーの長さは「300×20%=60」になるので、セルフ[11]には「60」が設定されます。
      844-845 ▼ セルフ14はスクロールバー上下の「遊び」の部分
可変DB[18:基本システム用変数]データ[98:座標倍率Y[x10]]セルフ[14]に設定。
このセルフ[14]はあとで上下に遊び(隙間)を作る時に使います。

セルフ[14]に設定された遊びの値は、上下の遊びの長さを合わせた合計値です。
セルフ[14]=8」の場合は、上に4ピクセル、下に4ピクセルの遊び(隙間)が設定されます。
      846-848 ▼ スクロールバーが今どこにあるか算出
ウィンドウの縦サイズ−スクロールバーの長さ−遊び+1」をセルフ[12]に設定。
これにより、スクロールバーと遊びの部分を除いた残りの長さが出ます。
      849-850 残りの長さ×スクロール位置行数÷表示されない行数(全行数−縦項目数)」をセルフ[12]に設定し、
スクロールバーが全体の何パーセントの位置にあるのかを算出。
例えば、全行数が「45行」で縦項目数(ウィンドウに表示できる行数)が「13行」である場合は、
表示されない行数は「32行」になります。
この表示されない行数「32行」を「100%」として、
現在表示している行数が何パーセントの位置にあるのかによって、
スクロールバーの表示位置を算出します。
      851-852 ウィンドウのY表示位置」と「遊び÷2」をセルフ[12]に加算し、
スクロールバーの縦表示位置を決定します。
      853-856 ▼ X座標を計算
ウィンドウのX表示位置+横サイズ−スクロールバーの幅(6)」をセルフ[13]に設定し、
ピクチャ[15006]でスクロールバーを表示。
  860-862 ◇上記以外
スクロールバーを表示しない場合は分岐。
    861-862 ▼ スクロールを出さない場合はここで消去
スクロールバーを表示するピクチャ[15006]を消去。


▲トップへ戻る▲



◎関連ページ

◆「基本システム」って何?
┣◆コモンイベントの一覧と補足説明
┣◆メニュー画面の処理構造
┗◆戦闘処理の処理構造

◆万能ウィンドウについて
┗◆万能ウィンドウの設定例

YADOT-WOLFトップ  気紛れな空間へ戻る  メール