WOLF RPGエディター(ウディタ)/自作メニュー【サイトトップへ戻る】
■アイテムの一覧表を「横2×縦12」に改造
(更新:2023/02/28)


基礎ページ(アイテムの一覧表の自作メニューを作る)で作成した「横1×縦12」の一覧表を「横2×縦12」に改造します。



基礎ページをご覧頂いていない場合は、先に基礎ページをご覧ください。
【アイテムの一覧表の自作メニューを作るのページを開く】

ショートカット
■改造内容の確認
■カーソルの移動処理について
■変数について
■「横1×縦12」から「横2×縦12」に改造
■「横2×縦12」から「横3×12」に変更

動作見本用のサンプルデータ
ダウンロード後に右クリック→[すべて展開]で解凍し、
中に入っている「★このデータについて」をご覧ください。
動作確認用のサンプルは完成した状態のみが入っています。
試作品のデータなど、制作途中のデータが欲しい場合は、
当ページの各イベント設定例にある【イベントコード表示】
をご利用ください。


  
■改造内容の確認

基礎ページの「横1×縦12」を改造し、「横2×縦12」の一覧表を作成します。



当ページの改造では「横2×縦12」に改造しますが、設定自体は横3以上にも対応しています。

コモンイベントの設定にある…
■変数操作: CSelf17[画面上項目数] = 24 + 0
■変数操作: CSelf18[横項目数] = 2 + 0
の設定にて、画面上項目数横項目数を設定する事で、任意の項目数の表示になります。

例えば「横3×縦8」の画面にする場合は…
■変数操作: CSelf17[画面上項目数] = 24 + 0
■変数操作: CSelf18[横項目数] = 3 + 0
と設定してください。

一応「横20×縦10」などの設定も…
■変数操作: CSelf17[画面上項目数] = 200 + 0
■変数操作: CSelf18[横項目数] = 20 + 0
と設定すれば可能ですが、ピクチャ番号が100項目分しか無いため、
ピクチャ番号を[100〜299][300〜499][500〜699]などに変える必要があります。

なお、縦の項目数は「画面上項目数÷横項目数」で算出するため、画面上項目数横項目数の倍数にしてください。



可変DB[20:一覧表用]の設定やピクチャ番号の使い方は基礎ページと変わりません。

ピクチャー
番号 使用内容
1 ウィンドウ画像
10 カーソル画像
20 スクロール可能を示すアイコン[▲]
21 スクロール可能を示すアイコン[▼]
100〜199 アイテム名
200〜299 アイテム名と所持数の間に表示する「×」
300〜399 所持数

選択項目の表示で使用するピクチャ番号は[100〜123]、[200〜223]、[300〜323]の範囲で使用します。



当ページにある設定例は、基礎ページと同様にゲーム画面のサイズ「320×240[x2]」に合わせた表示設定になっています。


▲トップへ戻る▲


  
■カーソルの移動処理について

当ページのカーソル位置は、左上が「0」、右下が「23」になります。

▼カーソル番号の並び方
0 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
22 23



カーソル位置[23]にアイテム名が無い場合で、カーソル位置[1]で上キー、
またはカーソル位置[21]で下キーを押した場合は、カーソル位置[22]へ移動します。

0 ここで上キー
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 ここで下キー
ここへ移動 項目なし



横3以上の場合は、右寄せで移動します。

0 1 ここで上キー
3 4 5
6 7 8
9 10 11
12 13 14
15 16 17
18 19 ここで下キー
21 ここへ移動 項目なし



万能ウィンドウでは、左上(カーソル位置[0])で上キーを押した場合は右下へ移動しますが、
当ページの設定では同じ列の最下行へ移動します。

万能ウィンドウの動き 当ページの動き
ここで上キー 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
22 ここへ移動
ここで上キー 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
ここへ移動 23
ここで上キー 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 ここへ移動
22 項目なし
ここで上キー 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
ここへ移動 項目なし



左下(カーソル位置[22])で下キーを押した場合は、
万能ウィンドウでは1つ右の列(カーソル位置[1])へ移動しますが、
当ページの設定では同じ列の最上行へ移動します。

万能ウィンドウの動き 当ページの動き
0 ここへ移動
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
ここで下キー 23
ここへ移動 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
ここで下キー 23



カーソル位置[23]にアイテム名が無い場合で、最下行で左右キーを押した場合は、
万能ウィンドウでは左上に移動しますが、当ページの設定では同じ位置に留まります。

万能ウィンドウの動き 当ページの動き
ここへ移動 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
ここで左右キー 項目なし
0 1
2 3
4 5
6 7
8 9
10 11
12 13
14 15
16 17
18 19
20 21
左右キー無反応 項目なし



横3以上の場合は、当ページの設定では同じ行の反対側へ移動します。

0 1 2 3
4 5 6 7
8 9 10 11
12 13 14 15
16 17 18 19
ここで左キー 21 ここへ移動 項目なし


▲トップへ戻る▲


  
■変数について

変数番号の表示が赤色になっている変数は、当ページで新たに追加された変数です。
変数番号の表示が黄色になっている変数は、基礎ページと使い方が変わっている変数です。

コモンイベントのセルフ変数
番号 名前 使用内容
10 キー入力 押したキーのキー番号を取得。
【キー番号の一覧を見る】
11 キー待ち時間 方向キーを押し続けた時に、次にカーソルが移動するまでの時間をカウントします。
カーソルが移動すると「12」が設定され、1フレームごとに「減算1」になり、
「0以下」になると再びカーソルの移動が可能になります。
方向キーを離すと「0」になるので、方向キーを連打するとカーソルが速く移動します。
12 起動時キー押し禁止 自作メニューの起動時に何らかのキーを押し続けている場合は、
一度キーを離さないとキー操作ができないようにする時に使用します。
起動時は「1」を設定し、キーを押していない状態になると「0」になり、
それ以降キー操作ができるようになります。
17 画面上項目数 画面上にある項目数を設定。
今回の自作メニューは「2×12=24」なので「24」を設定。
18 横項目数 横の項目数を設定。
今回の自作メニューは「横2」なので「2」を設定。
20 カーソル位置 メニュー画面上のカーソルの位置を設定。
一番上の行が「0」、一番下の行が「11」。
21 スクロール行数 現在スクロールしている行数を設定。
22 スクロール最大行 スクロールできる最大行数を設定。
画面上には12項目を表示する事ができるので、
15種類のアイテムを所持している場合のスクロール最大行は「3」になります。
23 所持有り総数 所持しているアイテムの総数です。
武器や防具の所持有りも一緒にカウントされます。
24 最下行左端位置 スクロールして最も下にある行の左端のカーソル位置を設定。
25 ピクチャ[100〜] アイテム名を表示するピクチャ番号を設定。
26 ピクチャ[200〜] アイテム名と所持数の間に表示する「×」のピクチャ番号を設定。
27 ピクチャ[300〜] 所持数を表示するピクチャ番号を設定。
30 X位置[100〜] アイテム名を表示するピクチャのカーソル[0]位置のX表示位置を設定。
カーソルのX表示位置の設定でも使用。
31 X位置[200〜] 「×」を表示するピクチャのカーソル[0]位置のX表示位置を設定。
32 X位置[300〜] 所持数を表示するピクチャのカーソル[0]位置のX表示位置を設定。
35 Y位置 アイテム名、「×」、所持数のピクチャのカーソル[0]位置のY表示位置を設定。
カーソルのY表示位置の設定でも使用。
40 全ID数 ユーザーDB[2:アイテム][3:武器][4:防具]のデータID数を取得する時に使用。
41 処理中ID アイテム、武器、防具のデータIDを設定し、
ユーザーDBからアイテム名を取得したり、可変DBから所持数を取得する時に使用。
42 所持数取得 可変DBの所持数を取得する時に使用。
43 アイテムID アイテムIDを取得する時に使用。
44 ユーザータイプID 処理中のアイテムのアイテム情報を保存したユーザーDBのタイプ番号を設定。
アイテム「2」、武器「3」、防具「4」。
45 可変タイプID 処理中のアイテムの所持数を保存した可変DBのタイプ番号を設定。
アイテム「7」、武器「8」、防具「9」。
46 計算用 一時的な計算処理で使用。
当ページではアイテム名の拡大率の計算で使用。
47 処理数 アイテム表示を行った数をカウント。
50 X計算[100〜] アイテム名のX表示位置を計算し、実際に表示する位置を算出。
51 X計算[200〜] 「×」のX表示位置を計算し、実際に表示する位置を算出。
52 X計算[300〜] 所持数のX表示位置を計算し、実際に表示する位置を算出。
55 Y計算 アイテム名、「×」、所持数のY表示位置を計算し、実際に表示する位置を算出。

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


▲トップへ戻る▲


  
■「横1×縦12」から「横2×縦12」に改造

横1×縦12」の設定を「横2×縦12」の設定に改造します。





▼カーソル位置[0]のX表示位置とカーソルの横の移動量


ピクチャー
番号 使用内容 位置 X1列目 X2列目
1 ウィンドウ画像 中心 160 120
10 カーソル画像 左上 26 160 (表示行×16)+24
20 スクロール可能を示すアイコン[▲] 中心 160 19
21 スクロール可能を示すアイコン[▼] 中心 160 221
100〜199 アイテム名 左上 30 164 (表示行×16)+26
200〜299 アイテム名と所持数の間に表示する「×」 左上 129 263 (表示行×16)+26
300〜399 所持数 右上 156 290 (表示行×16)+26



主な改造内容は以下のとおりです。
※「行」は追加設定後の行数です。

設定内容
1 セルフ[17:画面上項目数]に画面上の項目数「24」を設定し、
セルフ[18:横項目数]に横の項目数「2」を設定。
なお、縦の項目数は「セルフ[17]÷セルフ[18]」で自動的に算出されます。
3 ウィンドウの横サイズを「284」に変更。
79 アイテム名のX表示位置を左に「67ピクセル」移動します。
設定では…
■変数操作: CSelf30[X位置[100〜]] = 97 - 67
と右辺の右側に「- 67」を設定して、67ピクセル左に移動させています。
こうする事で「97−67=30」と言った計算をして設定する必要が無くなり、
また元々の数値が残っているので、設定内容も分かりやすくなります。
なお…
■変数操作: CSelf30[X位置[100〜]] = 30 + 0
と設定しても問題ありません。
85 ループ内ではアイテム名を表示する度にセルフ[46:所持数]に「加算1」を設定します。
このセルフ[46:所持数]は、表示位置を計算する時に使います。
セルフ[46:所持数]に「剰余2」を設定する事で値が「0」か「1」になり、
「0=左に表示」「1=右に表示」になります。
またセルフ[46:所持数]に「除算2」を設定する事で何行目(0〜11)なのかが算出されます。
95 アイテム名の表示位置の設定は、セルフ[50〜52、55]を使用します。
そして元々表示設定で使っていたセルフ[30〜32、35]は、
カーソル位置[0]の表示位置を保存するのに使用します。
117 ▼ 最下行で項目が存在しない位置へカーソルを移動させた時の補正
最下行で右側にアイテム名が無い時に、
そのアイテム名が存在しない位置へカーソルを移動させようとした時に、
カーソルの位置を左へ移動させます。
127 ▼ カーソル表示
カーソル位置から、カーソルのX・Y表示位置を算出。
138 【キー入力】にて、上下キーのみだった設定を「4方向」に変更。
165 上下キーのカーソル移動時の増減値を「±2」にします。
211 左右キーの処理を追加します。
232 ▼ 最下行で項目が存在しない位置へカーソルを移動させた時に左端へ移動
最下行で右側にアイテム名が無い時に、
右キーを押してアイテム名が存在しない位置へカーソルを移動させようとした時に、
カーソルの位置を左端に移動させます。



【イベントコード表示】

■変数操作: CSelf12[起動時キー押し禁止] = 1 + 0
■変数操作: CSelf17[画面上項目数] = 24 + 0
■変数操作: CSelf18[横項目数] = 2 + 0

■ピクチャ表示:1 [中心]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[284,206] X:160 Y:120 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:10 [左上]ウィンドウ「SystemFile/CursorBase.png」サイズ[134,16] X:93 Y:24 / 0(0)フレーム /
       パターン 1 / 透 255 / 加算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:10 [点滅A(明滅)] R100/G100/B100 明滅間隔(30)フレーム
▼ ■■■■■■■■■■所持有り総数をチェック
■変数操作: CSelf20[カーソル位置]〜CSelf23[所持有り総数] = 0 + 0
▼ アイテムの所持数1以上
■可変DB書込:[タイプ 一覧表用(20) を初期化]
■DB読込(可変): CSelf40[全ID数] = 可変DB[タイプ┣所持アイテム個数(7)のデータ数]
■変数操作: CSelf41[処理中ID] = 0 + 0
■回数付きループ [ CSelf40[全ID数] ]回
|■DB読込(可変): CSelf42[所持数取得] = 可変DB[ ┣所持アイテム個数 : CSelf41[処理中ID] : 0 ] (7 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf42[所持数取得] が 1 以上
|-◇分岐: 【1】 [ CSelf42[所持数取得] が 1 以上 ]の場合↓
| |■変数操作: CSelf43[アイテムID] = CSelf41[処理中ID] + 20000
| |■可変DB書込:DB[ 一覧表用 : CSelf23[所持有り総数] : 0 ] (20 : - : アイテムID) = CSelf43[アイテムID]
| |■変数操作: CSelf23[所持有り総数] += 1 + 0
| |■
|◇分岐終了◇
|■変数操作: CSelf41[処理中ID] += 1 + 0
|■
◇ループここまで◇◇
▼ 武器の所持数1以上
■DB読込(可変): CSelf40[全ID数] = 可変DB[タイプ┣所持武器個数(8)のデータ数]
■変数操作: CSelf41[処理中ID] = 0 + 0
■回数付きループ [ CSelf40[全ID数] ]回
|■DB読込(可変): CSelf42[所持数取得] = 可変DB[ ┣所持武器個数 : CSelf41[処理中ID] : 0 ] (8 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf42[所持数取得] が 1 以上
|-◇分岐: 【1】 [ CSelf42[所持数取得] が 1 以上 ]の場合↓
| |■変数操作: CSelf43[アイテムID] = CSelf41[処理中ID] + 30000
| |■可変DB書込:DB[ 一覧表用 : CSelf23[所持有り総数] : 0 ] (20 : - : アイテムID) = CSelf43[アイテムID]
| |■変数操作: CSelf23[所持有り総数] += 1 + 0
| |■
|◇分岐終了◇
|■変数操作: CSelf41[処理中ID] += 1 + 0
|■
◇ループここまで◇◇
▼ 防具の所持数1以上
■DB読込(可変): CSelf40[全ID数] = 可変DB[タイプ┗所持防具個数(9)のデータ数]
■変数操作: CSelf41[処理中ID] = 0 + 0
■回数付きループ [ CSelf40[全ID数] ]回
|■DB読込(可変): CSelf42[所持数取得] = 可変DB[ ┗所持防具個数 : CSelf41[処理中ID] : 0 ] (9 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf42[所持数取得] が 1 以上
|-◇分岐: 【1】 [ CSelf42[所持数取得] が 1 以上 ]の場合↓
| |■変数操作: CSelf43[アイテムID] = CSelf41[処理中ID] + 40000
| |■可変DB書込:DB[ 一覧表用 : CSelf23[所持有り総数] : 0 ] (20 : - : アイテムID) = CSelf43[アイテムID]
| |■変数操作: CSelf23[所持有り総数] += 1 + 0
| |■
|◇分岐終了◇
|■変数操作: CSelf41[処理中ID] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf22[スクロール最大行] = CSelf23[所持有り総数] - CSelf17[画面上項目数]
■変数操作: CSelf22[スクロール最大行] 下限= 0 + 0
■変数操作: CSelf22[スクロール最大行] += CSelf18[横項目数] - 1
■変数操作: CSelf22[スクロール最大行] /= CSelf18[横項目数] + 0

■変数操作: CSelf24[最下行左端位置] = CSelf23[所持有り総数] - 1
■変数操作: CSelf24[最下行左端位置] /= CSelf18[横項目数] + 0
■変数操作: CSelf24[最下行左端位置] *= CSelf18[横項目数] + 0

■変数操作: CSelf24[最下行左端位置] 下限= 0 + 0
▼ ■■■■■■■■■■アイテム名を表示
●ラベル地点「アイテム名表示」 <<<<<<<<<<<<<<<<<<<<<<<<★
■ピクチャ消去:20 〜 21 / 0(0)フレーム
■ピクチャ消去:100 〜 399 / 0(0)フレーム
■条件分岐(変数): 【1】 CSelf21[スクロール行数] が 1 以上
-◇分岐: 【1】 [ CSelf21[スクロール行数] が 1 以上 ]の場合↓
|■ピクチャ表示:20 [中心]文字列[\f[10]▲] X:160 Y:19 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf21[スクロール行数] が CSelf22[スクロール最大行] 未満
-◇分岐: 【1】 [ CSelf21[スクロール行数] が CSelf22[スクロール最大行] 未満 ]の場合↓
|■ピクチャ表示:21 [中心]文字列[\f[10]▼] X:160 Y:221 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇
■変数操作: CSelf25[ピクチャ[100〜]] = 100 + 0
■変数操作: CSelf26[ピクチャ[200〜]] = 200 + 0
■変数操作: CSelf27[ピクチャ[300〜]] = 300 + 0
■変数操作: CSelf30[X位置[100〜]] = 97 - 67
■変数操作: CSelf31[X位置[200〜]] = 196 - 67
■変数操作: CSelf32[X位置[300〜]] = 223 - 67
■変数操作: CSelf35[Y位置] = 26 + 0
■変数操作: CSelf41[処理中ID] = CSelf21[スクロール行数] + 0
■変数操作: CSelf46[処理数] = 0 + 0
■回数付きループ [ CSelf17[画面上項目数] ]回
|■DB読込(可変): CSelf43[アイテムID] = 可変DB[ 一覧表用 : CSelf41[処理中ID] : 0 ] (20 : - : アイテムID)
|■条件分岐(変数): 【1】 CSelf43[アイテムID] が 0 と同じ
|-◇分岐: 【1】 [ CSelf43[アイテムID] が 0 と同じ ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■変数操作: CSelf44[ユーザータイプID]〜CSelf45[可変タイプID] = CSelf43[アイテムID] / 10000
|■変数操作: CSelf45[可変タイプID] += 5 + 0
|■変数操作: CSelf43[アイテムID] %= 10000 + 0
|■変数操作: CSelf50[X計算[100〜]]〜CSelf52[X計算[300〜]] = CSelf46[処理数] % CSelf18[横項目数]
|■変数操作: CSelf50[X計算[100〜]]〜CSelf52[X計算[300〜]] *= 134 + 0
|■変数操作: CSelf50[X計算[100〜]] += CSelf30[X位置[100〜]] + 0
|■変数操作: CSelf51[X計算[200〜]] += CSelf31[X位置[200〜]] + 0
|■変数操作: CSelf52[X計算[300〜]] += CSelf32[X位置[300〜]] + 0
|■変数操作: CSelf55[Y計算] = CSelf46[処理数] / CSelf18[横項目数]
|■変数操作: CSelf55[Y計算] *= 16 + 0
|■変数操作: CSelf55[Y計算] += CSelf35[Y位置] + 0

|■ピクチャ表示:CSelf25[ピクチャ[100〜]] [左上]文字列[\udb[\cself[44]:\]
       X:CSelf50[X計算[100〜]] Y:CSelf55[Y計算] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf26[ピクチャ[200〜]] [左上]文字列[×]
       X:CSelf51[X計算[200〜]] Y:CSelf55[Y計算] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf27[ピクチャ[300〜]] [右上]文字列[\cdb[\cself[45]:\]
       X:CSelf52[X計算[300〜]] Y:CSelf55[Y計算] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf46[計算用] = 96 * 100
|■変数操作+: CSelf46[計算用] /= ピクチャ:CSelf25[ピクチャ[100〜]] の 画像サイズ(横)
|■変数操作: CSelf46[計算用] 上限= 100 + 0
|■ピクチャ移動:CSelf25[ピクチャ[100〜]] 相対X:0 Y:0 / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 CSelf46[計算用]x100% / カラー 同値
|■変数操作: CSelf25[ピクチャ[100〜]]〜CSelf27[ピクチャ[300〜]] += 1 + 0
|■変数操作: CSelf41[処理中ID] += 1 + 0
|■変数操作:CSelf46[処理数] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■キー処理
●ラベル地点「キー処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ 最下行で項目が存在しない位置へカーソルを移動させた時の補正
■変数操作: CSelf47[計算用] = CSelf20[カーソル位置] + 0
■変数操作: CSelf47[計算用] += CSelf21[スクロール行数] * CSelf18[横項目数]
■条件分岐(変数): 【1】 CSelf47[計算用] が CSelf23[所持有り総数] 以上
-◇分岐: 【1】 [ CSelf47[計算用] が CSelf23[所持有り総数] 以上 ]の場合↓
|■変数操作: CSelf20[カーソル位置] = CSelf23[所持有り総数] - 1
|■変数操作: CSelf20[カーソル位置] -= CSelf22[スクロール最大行] * CSelf18[横項目数]
|■変数操作: CSelf20[カーソル位置] 下限= 0 + 0
|■
◇分岐終了◇
▼ カーソル表示
■変数操作: CSelf30[X位置[100〜]] = CSelf20[カーソル位置] % CSelf18[横項目数]
■変数操作: CSelf30[X位置[100〜]] *= 134 + 0
■変数操作: CSelf30[X位置[100〜]] += 93 - 67

■変数操作: CSelf35[Y位置] = CSelf20[カーソル位置] / CSelf18[横項目数]
■変数操作: CSelf35[Y位置] *= 16 + 0
■変数操作: CSelf35[Y位置] += 24 + 0
■ピクチャ移動:10 X:CSelf30[X位置[100〜]] Y:CSelf35[Y位置] / 0(0)フレーム /
       パターン 1 / 透 255 / 表示形式:同値 / 角 0 / 拡 同値 / カラー 同値
■ループ開始
|■ウェイト:1 フレーム
|■変数操作: CSelf11[キー待ち時間] -= 1 + 0
|■キー入力:CSelf10[キー入力] 4方向 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 0 と同じ
          【2】 CSelf12[起動時キー押し禁止] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 0 と同じ ]の場合↓
| |■変数操作: CSelf11[キー待ち時間]〜CSelf12[起動時キー押し禁止] = 0 + 0
| |■ループ開始へ戻る
| |■
|-◇分岐: 【2】 [ CSelf12[起動時キー押し禁止] が 1 と同じ ]の場合↓
| |■ループ開始へ戻る
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 10 と同じ
          【2】 CSelf10[キー入力] が 11 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 10 と同じ ]の場合↓
| |▼ 決定
| |■ループ中断
| |■
|-◇分岐: 【2】 [ CSelf10[キー入力] が 11 と同じ ]の場合↓
| |▼ キャンセル
| |●ラベル「終了」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キー待ち時間] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キー待ち時間] が 1 以上 ]の場合↓
| |■ループ開始へ戻る
| |■
|◇分岐終了◇
|■変数操作: CSelf11[キー待ち時間] = 12 + 0
|▼ カーソル移動処理
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 8 と同じ 【2】 CSelf10[キー入力] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 8 と同じ ]の場合↓
| |▼ 上キーを押した
| |■条件分岐(変数): 【1】 CSelf20[カーソル位置] が CSelf18[横項目数] 以上
| |-◇分岐: 【1】 [ CSelf20[カーソル位置] が CSelf18[横項目数] 以上 ]の場合↓
| | |■変数操作: CSelf20[カーソル位置] -= CSelf18[横項目数] + 0
| | |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■条件分岐(変数): 【1】 CSelf21[スクロール行数] が 1 以上
| |-◇分岐: 【1】 [ CSelf21[スクロール行数] が 1 以上 ]の場合↓
| | |■変数操作: CSelf21[スクロール行数] -= 1 + 0
| | |●ラベル「アイテム名表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf20[カーソル位置] += CSelf24[最下行左端位置] + 0
| |■変数操作: CSelf20[カーソル位置] -= CSelf22[スクロール最大行] * CSelf18[横項目数]
| |■変数操作: CSelf21[スクロール行数] = CSelf22[スクロール最大行] + 0
| |●ラベル「アイテム名表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|-◇分岐: 【2】 [ CSelf10[キー入力] が 2 と同じ ]の場合↓
| |▼ 下キーを押した
| |■変数操作: CSelf47[計算用] = CSelf17[画面上項目数] - CSelf18[横項目数]
| |■条件分岐(変数): 【1】 CSelf20[カーソル位置] が CSelf47[計算用] 未満
| |-◇分岐: 【1】 [ CSelf20[カーソル位置] が CSelf47[計算用] 未満 ]の場合↓
| | |■条件分岐(変数): 【1】 CSelf20[カーソル位置] が CSelf24[最下行左端位置] 以上
| | |-◇分岐: 【1】 [ CSelf20[カーソル位置] が CSelf24[最下行左端位置] 以上 ]の場合↓
| | | |■変数操作: CSelf20[カーソル位置] %= CSelf18[横項目数] + 0
| | | |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | | |■
| | |◇分岐終了◇
| | |■変数操作: CSelf20[カーソル位置] += CSelf18[横項目数] + 0
| | |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■条件分岐(変数): 【1】 CSelf21[スクロール行数] が CSelf22[スクロール最大行] 未満
| |-◇分岐: 【1】 [ CSelf21[スクロール行数] が CSelf22[スクロール最大行] 未満 ]の場合↓
| | |■変数操作: CSelf21[スクロール行数] += 1 + 0
| | |●ラベル「アイテム名表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf20[カーソル位置] -= CSelf17[画面上項目数] - CSelf18[横項目数]
| |■変数操作: CSelf21[スクロール行数] = 0 + 0
| |●ラベル「アイテム名表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 4 と同じ 【2】 CSelf10[キー入力] が 6 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 4 と同じ ]の場合↓
| |▼ 左キーを押した
| |■変数操作: CSelf47[計算用] = CSelf20[カーソル位置] % CSelf18[横項目数]
| |■条件分岐(変数): 【1】 CSelf47[計算用] が 0 と同じ
| |-◇分岐: 【1】 [ CSelf47[計算用] が 0 と同じ ]の場合↓
| | |■変数操作: CSelf20[カーソル位置] += CSelf18[横項目数] + 0
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf20[カーソル位置] -= 1 + 0
| |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|-◇分岐: 【2】 [ CSelf10[キー入力] が 6 と同じ ]の場合↓
| |▼ 右キーを押した
| |■変数操作: CSelf20[カーソル位置] += 1 + 0
| |■変数操作: CSelf47[計算用] = CSelf20[カーソル位置] % CSelf18[横項目数]
| |■条件分岐(変数): 【1】 CSelf47[計算用] が 0 と同じ
| |-◇分岐: 【1】 [ CSelf47[計算用] が 0 と同じ ]の場合↓
| | |■変数操作: CSelf20[カーソル位置] -= CSelf18[横項目数] + 0
| | |■
| |◇分岐終了◇
| |▼ 最下行で項目が存在しない位置へカーソルを移動させた時に左端へ移動
| |■変数操作: CSelf47[計算用] = CSelf20[カーソル位置] + 0
| |■変数操作: CSelf47[計算用] += CSelf21[スクロール行数] * CSelf18[横項目数]
| |■条件分岐(変数): 【1】 CSelf47[計算用] が CSelf23[所持有り総数] 以上
| |-◇分岐: 【1】 [ CSelf47[計算用] が CSelf23[所持有り総数] 以上 ]の場合↓
| | |■変数操作: CSelf20[カーソル位置] /= CSelf18[横項目数] + 0
| | |■変数操作: CSelf20[カーソル位置] *= CSelf18[横項目数] + 0
| | |■
| |◇分岐終了◇
| |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇

|■
◇ループここまで◇◇
▼ ■■■■■■■■■■決定の処理
■変数操作: CSelf20[カーソル位置] += CSelf21[スクロール行数] * CSelf18[横項目数]
■DB読込(可変): CSelf43[アイテムID] = 可変DB[ 一覧表用 : CSelf20[カーソル位置] : 0 ] (20 : - : アイテムID)
■条件分岐(変数): 【1】 CSelf43[アイテムID] が 0 と同じ
-◇分岐: 【1】 [ CSelf43[アイテムID] が 0 と同じ ]の場合↓
|●ラベル「終了」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇
■変数操作: CSelf44[ユーザータイプID] = CSelf43[アイテムID] / 10000
■変数操作: CSelf43[アイテムID] %= 10000 + 0
■文章:「\udb[\cself[44]:\cself[43]:0]」を決定。
●ラベル地点「終了」 <<<<<<<<<<<<<<<<<<<<<<<<★
■ピクチャ消去:1 〜 399 / 0(0)フレーム

以上で設定完了です。

テストプレイを実行して、動作確認を行ってください。


▲トップへ戻る▲


  
■「横2×縦12」から「横3×縦12」に変更

横2×縦12」の設定を「横3×縦12」の設定に改造します。



アイテム名の文字数は全角5文字までとなります。

なお、ウディタ[3.00]の初期設定になっているフォント「Meiryo」半角文字の横幅がちょっと広いため、
全角1文字の横幅=半角2文字分の横幅」ではありません。

そのため上図のアイテム名の表示は、横拡大率が「95%」と若干縮小されて表示されています。



▼カーソル位置[0]のX表示位置とカーソルの横の移動量


ピクチャー
番号 使用内容 位置 X1列目 X2列目 X3列目
1 ウィンドウ画像 中心 160 120
10 カーソル画像 左上 13 111 209 (表示行×16)+24
20 スクロール可能を示すアイコン[▲] 中心 160 19
21 スクロール可能を示すアイコン[▼] 中心 160 221
100〜199 アイテム名 左上 17 115 213 (表示行×16)+26
200〜299 アイテム名と所持数の間に表示する「×」 左上 80 178 276 (表示行×16)+26
300〜399 所持数 右上 107 205 303 (表示行×16)+26



主な改造内容は以下のとおりです。

設定内容
1 セルフ[17:画面上項目数]に画面上の項目数「36」を設定し、
セルフ[18:横項目数]に横の項目数「3」を設定。
3 ウィンドウの横サイズを「310」に変更。
カーソルの横サイズを「98」に変更。
79 アイテム名、「×」、所持数のX表示位置を調整。
96 カーソルの横サイズと同じ「98」に変更。
106 全角5文字のサイズ「60」に修正。
※ゲーム画面が[320×240[x2]]の時のフォントサイズが「12」であるため、
 「全角5文字×12=60」になります。
上記で説明した通り、フォント「Meiryo」で「アイテム01」を表示すると、
半角2文字の影響で横拡大率が「95%」になります。
この106行目の「60」に修正を「63」に修正する変えると、
「アイテム01」でも横拡大率が「100%」で表示されます。
但し右にある「×」の表示に近くなってしまうので、
79行目の「17 + 0」の設定を「16 + 0」に変えるなど、
アイテム名のX表示位置の微調整が必要になるかと思います。
129 カーソルの表示位置を修正。



【イベントコード表示】

■変数操作: CSelf12[起動時キー押し禁止] = 1 + 0
■変数操作: CSelf17[画面上項目数] = 36 + 0
■変数操作: CSelf18[横項目数] = 3 + 0
■ピクチャ表示:1 [中心]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[310,206] X:160 Y:120 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:10 [左上]ウィンドウ「SystemFile/CursorBase.png」サイズ[98,16] X:93 Y:24 / 0(0)フレーム /
       パターン 1 / 透 255 / 加算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:10 [点滅A(明滅)] R100/G100/B100 明滅間隔(30)フレーム
▼ ■■■■■■■■■■所持有り総数をチェック
■変数操作: CSelf20[カーソル位置]〜CSelf23[所持有り総数] = 0 + 0
▼ アイテムの所持数1以上
■可変DB書込:[タイプ 一覧表用(20) を初期化]
■DB読込(可変): CSelf40[全ID数] = 可変DB[タイプ┣所持アイテム個数(7)のデータ数]
■変数操作: CSelf41[処理中ID] = 0 + 0
■回数付きループ [ CSelf40[全ID数] ]回
|■DB読込(可変): CSelf42[所持数取得] = 可変DB[ ┣所持アイテム個数 : CSelf41[処理中ID] : 0 ] (7 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf42[所持数取得] が 1 以上
|-◇分岐: 【1】 [ CSelf42[所持数取得] が 1 以上 ]の場合↓
| |■変数操作: CSelf43[アイテムID] = CSelf41[処理中ID] + 20000
| |■可変DB書込:DB[ 一覧表用 : CSelf23[所持有り総数] : 0 ] (20 : - : アイテムID) = CSelf43[アイテムID]
| |■変数操作: CSelf23[所持有り総数] += 1 + 0
| |■
|◇分岐終了◇
|■変数操作: CSelf41[処理中ID] += 1 + 0
|■
◇ループここまで◇◇
▼ 武器の所持数1以上
■DB読込(可変): CSelf40[全ID数] = 可変DB[タイプ┣所持武器個数(8)のデータ数]
■変数操作: CSelf41[処理中ID] = 0 + 0
■回数付きループ [ CSelf40[全ID数] ]回
|■DB読込(可変): CSelf42[所持数取得] = 可変DB[ ┣所持武器個数 : CSelf41[処理中ID] : 0 ] (8 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf42[所持数取得] が 1 以上
|-◇分岐: 【1】 [ CSelf42[所持数取得] が 1 以上 ]の場合↓
| |■変数操作: CSelf43[アイテムID] = CSelf41[処理中ID] + 30000
| |■可変DB書込:DB[ 一覧表用 : CSelf23[所持有り総数] : 0 ] (20 : - : アイテムID) = CSelf43[アイテムID]
| |■変数操作: CSelf23[所持有り総数] += 1 + 0
| |■
|◇分岐終了◇
|■変数操作: CSelf41[処理中ID] += 1 + 0
|■
◇ループここまで◇◇
▼ 防具の所持数1以上
■DB読込(可変): CSelf40[全ID数] = 可変DB[タイプ┗所持防具個数(9)のデータ数]
■変数操作: CSelf41[処理中ID] = 0 + 0
■回数付きループ [ CSelf40[全ID数] ]回
|■DB読込(可変): CSelf42[所持数取得] = 可変DB[ ┗所持防具個数 : CSelf41[処理中ID] : 0 ] (9 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf42[所持数取得] が 1 以上
|-◇分岐: 【1】 [ CSelf42[所持数取得] が 1 以上 ]の場合↓
| |■変数操作: CSelf43[アイテムID] = CSelf41[処理中ID] + 40000
| |■可変DB書込:DB[ 一覧表用 : CSelf23[所持有り総数] : 0 ] (20 : - : アイテムID) = CSelf43[アイテムID]
| |■変数操作: CSelf23[所持有り総数] += 1 + 0
| |■
|◇分岐終了◇
|■変数操作: CSelf41[処理中ID] += 1 + 0
|■
◇ループここまで◇◇
■変数操作: CSelf22[スクロール最大行] = CSelf23[所持有り総数] - CSelf17[画面上項目数]
■変数操作: CSelf22[スクロール最大行] 下限= 0 + 0
■変数操作: CSelf22[スクロール最大行] += CSelf18[横項目数] - 1
■変数操作: CSelf22[スクロール最大行] /= CSelf18[横項目数] + 0
■変数操作: CSelf24[最下行左端位置] = CSelf23[所持有り総数] - 1
■変数操作: CSelf24[最下行左端位置] /= CSelf18[横項目数] + 0
■変数操作: CSelf24[最下行左端位置] *= CSelf18[横項目数] + 0
■変数操作: CSelf24[最下行左端位置] 下限= 0 + 0
▼ ■■■■■■■■■■アイテム名を表示
●ラベル地点「アイテム名表示」 <<<<<<<<<<<<<<<<<<<<<<<<★
■ピクチャ消去:20 〜 21 / 0(0)フレーム
■ピクチャ消去:100 〜 399 / 0(0)フレーム
■条件分岐(変数): 【1】 CSelf21[スクロール行数] が 1 以上
-◇分岐: 【1】 [ CSelf21[スクロール行数] が 1 以上 ]の場合↓
|■ピクチャ表示:20 [中心]文字列[\f[10]▲] X:160 Y:19 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf21[スクロール行数] が CSelf22[スクロール最大行] 未満
-◇分岐: 【1】 [ CSelf21[スクロール行数] が CSelf22[スクロール最大行] 未満 ]の場合↓
|■ピクチャ表示:21 [中心]文字列[\f[10]▼] X:160 Y:221 / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇
■変数操作: CSelf25[ピクチャ[100〜]] = 100 + 0
■変数操作: CSelf26[ピクチャ[200〜]] = 200 + 0
■変数操作: CSelf27[ピクチャ[300〜]] = 300 + 0
■変数操作: CSelf30[X位置[100〜]] = 17 + 0
■変数操作: CSelf31[X位置[200〜]] = 80 + 0
■変数操作: CSelf32[X位置[300〜]] = 107 + 0
■変数操作: CSelf35[Y位置] = 26 + 0
■変数操作: CSelf41[処理中ID] = CSelf21[スクロール行数] + 0
■変数操作: CSelf46[処理数] = 0 + 0
■回数付きループ [ CSelf17[画面上項目数] ]回
|■DB読込(可変): CSelf43[アイテムID] = 可変DB[ 一覧表用 : CSelf41[処理中ID] : 0 ] (20 : - : アイテムID)
|■条件分岐(変数): 【1】 CSelf43[アイテムID] が 0 と同じ
|-◇分岐: 【1】 [ CSelf43[アイテムID] が 0 と同じ ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■変数操作: CSelf44[ユーザータイプID]〜CSelf45[可変タイプID] = CSelf43[アイテムID] / 10000
|■変数操作: CSelf45[可変タイプID] += 5 + 0
|■変数操作: CSelf43[アイテムID] %= 10000 + 0
|■変数操作: CSelf50[X計算[100〜]]〜CSelf52[X計算[300〜]] = CSelf46[処理数] % CSelf18[横項目数]
|■変数操作: CSelf50[X計算[100〜]]〜CSelf52[X計算[300〜]] *= 98 + 0
|■変数操作: CSelf50[X計算[100〜]] += CSelf30[X位置[100〜]] + 0
|■変数操作: CSelf51[X計算[200〜]] += CSelf31[X位置[200〜]] + 0
|■変数操作: CSelf52[X計算[300〜]] += CSelf32[X位置[300〜]] + 0
|■変数操作: CSelf55[Y計算] = CSelf46[処理数] / CSelf18[横項目数]
|■変数操作: CSelf55[Y計算] *= 16 + 0
|■変数操作: CSelf55[Y計算] += CSelf35[Y位置] + 0
|■ピクチャ表示:CSelf25[ピクチャ[100〜]] [左上]文字列[\udb[\cself[44]:\]
       X:CSelf50[X計算[100〜]] Y:CSelf55[Y計算] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf26[ピクチャ[200〜]] [左上]文字列[×]
       X:CSelf51[X計算[200〜]] Y:CSelf55[Y計算] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf27[ピクチャ[300〜]] [右上]文字列[\cdb[\cself[45]:\]
       X:CSelf52[X計算[300〜]] Y:CSelf55[Y計算] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf46[計算用] = 60 * 100
|■変数操作+: CSelf46[計算用] /= ピクチャ:CSelf25[ピクチャ[100〜]] の 画像サイズ(横)
|■変数操作: CSelf46[計算用] 上限= 100 + 0
|■ピクチャ移動:CSelf25[ピクチャ[100〜]] 相対X:0 Y:0 / 0(0)フレーム /
       パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 CSelf46[計算用]x100% / カラー 同値
|■変数操作: CSelf25[ピクチャ[100〜]]〜CSelf27[ピクチャ[300〜]] += 1 + 0
|■変数操作: CSelf41[処理中ID] += 1 + 0
|■変数操作:CSelf46[処理数] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■キー処理
●ラベル地点「キー処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ 最下行で項目が存在しない位置へカーソルを移動させた時の補正
■変数操作: CSelf47[計算用] = CSelf20[カーソル位置] + 0
■変数操作: CSelf47[計算用] += CSelf21[スクロール行数] * CSelf18[横項目数]
■条件分岐(変数): 【1】 CSelf47[計算用] が CSelf23[所持有り総数] 以上
-◇分岐: 【1】 [ CSelf47[計算用] が CSelf23[所持有り総数] 以上 ]の場合↓
|■変数操作: CSelf20[カーソル位置] = CSelf23[所持有り総数] - 1
|■変数操作: CSelf20[カーソル位置] -= CSelf22[スクロール最大行] * CSelf18[横項目数]
|■変数操作: CSelf20[カーソル位置] 下限= 0 + 0
|■
◇分岐終了◇
▼ カーソル表示
■変数操作: CSelf30[X位置[100〜]] = CSelf20[カーソル位置] % CSelf18[横項目数]
■変数操作: CSelf30[X位置[100〜]] *= 98 + 0
■変数操作: CSelf30[X位置[100〜]] += 13 + 0
■変数操作: CSelf35[Y位置] = CSelf20[カーソル位置] / CSelf18[横項目数]
■変数操作: CSelf35[Y位置] *= 16 + 0
■変数操作: CSelf35[Y位置] += 24 + 0
■ピクチャ移動:10 X:CSelf30[X位置[100〜]] Y:CSelf35[Y位置] / 0(0)フレーム /
       パターン 1 / 透 255 / 表示形式:同値 / 角 0 / 拡 同値 / カラー 同値
■ループ開始
|■ウェイト:1 フレーム
|■変数操作: CSelf11[キー待ち時間] -= 1 + 0
|■キー入力:CSelf10[キー入力] 4方向 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 0 と同じ
          【2】 CSelf12[起動時キー押し禁止] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 0 と同じ ]の場合↓
| |■変数操作: CSelf11[キー待ち時間]〜CSelf12[起動時キー押し禁止] = 0 + 0
| |■ループ開始へ戻る
| |■
|-◇分岐: 【2】 [ CSelf12[起動時キー押し禁止] が 1 と同じ ]の場合↓
| |■ループ開始へ戻る
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 10 と同じ
          【2】 CSelf10[キー入力] が 11 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 10 と同じ ]の場合↓
| |▼ 決定
| |■ループ中断
| |■
|-◇分岐: 【2】 [ CSelf10[キー入力] が 11 と同じ ]の場合↓
| |▼ キャンセル
| |●ラベル「終了」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キー待ち時間] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キー待ち時間] が 1 以上 ]の場合↓
| |■ループ開始へ戻る
| |■
|◇分岐終了◇
|■変数操作: CSelf11[キー待ち時間] = 12 + 0
|▼ カーソル移動処理
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 8 と同じ 【2】 CSelf10[キー入力] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 8 と同じ ]の場合↓
| |▼ 上キーを押した
| |■条件分岐(変数): 【1】 CSelf20[カーソル位置] が CSelf18[横項目数] 以上
| |-◇分岐: 【1】 [ CSelf20[カーソル位置] が CSelf18[横項目数] 以上 ]の場合↓
| | |■変数操作: CSelf20[カーソル位置] -= CSelf18[横項目数] + 0
| | |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■条件分岐(変数): 【1】 CSelf21[スクロール行数] が 1 以上
| |-◇分岐: 【1】 [ CSelf21[スクロール行数] が 1 以上 ]の場合↓
| | |■変数操作: CSelf21[スクロール行数] -= 1 + 0
| | |●ラベル「アイテム名表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf20[カーソル位置] += CSelf24[最下行左端位置] + 0
| |■変数操作: CSelf20[カーソル位置] -= CSelf22[スクロール最大行] * CSelf18[横項目数]
| |■変数操作: CSelf21[スクロール行数] = CSelf22[スクロール最大行] + 0
| |●ラベル「アイテム名表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|-◇分岐: 【2】 [ CSelf10[キー入力] が 2 と同じ ]の場合↓
| |▼ 下キーを押した
| |■変数操作: CSelf47[計算用] = CSelf17[画面上項目数] - CSelf18[横項目数]
| |■条件分岐(変数): 【1】 CSelf20[カーソル位置] が CSelf47[計算用] 未満
| |-◇分岐: 【1】 [ CSelf20[カーソル位置] が CSelf47[計算用] 未満 ]の場合↓
| | |■条件分岐(変数): 【1】 CSelf20[カーソル位置] が CSelf24[最下行左端位置] 以上
| | |-◇分岐: 【1】 [ CSelf20[カーソル位置] が CSelf24[最下行左端位置] 以上 ]の場合↓
| | | |■変数操作: CSelf20[カーソル位置] %= CSelf18[横項目数] + 0
| | | |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | | |■
| | |◇分岐終了◇
| | |■変数操作: CSelf20[カーソル位置] += CSelf18[横項目数] + 0
| | |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■条件分岐(変数): 【1】 CSelf21[スクロール行数] が CSelf22[スクロール最大行] 未満
| |-◇分岐: 【1】 [ CSelf21[スクロール行数] が CSelf22[スクロール最大行] 未満 ]の場合↓
| | |■変数操作: CSelf21[スクロール行数] += 1 + 0
| | |●ラベル「アイテム名表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf20[カーソル位置] -= CSelf17[画面上項目数] - CSelf18[横項目数]
| |■変数操作: CSelf21[スクロール行数] = 0 + 0
| |●ラベル「アイテム名表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力] が 4 と同じ 【2】 CSelf10[キー入力] が 6 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力] が 4 と同じ ]の場合↓
| |▼ 左キーを押した
| |■変数操作: CSelf47[計算用] = CSelf20[カーソル位置] % CSelf18[横項目数]
| |■条件分岐(変数): 【1】 CSelf47[計算用] が 0 と同じ
| |-◇分岐: 【1】 [ CSelf47[計算用] が 0 と同じ ]の場合↓
| | |■変数操作: CSelf20[カーソル位置] += CSelf18[横項目数] + 0
| | |■
| |◇分岐終了◇
| |■変数操作: CSelf20[カーソル位置] -= 1 + 0
| |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|-◇分岐: 【2】 [ CSelf10[キー入力] が 6 と同じ ]の場合↓
| |▼ 右キーを押した
| |■変数操作: CSelf20[カーソル位置] += 1 + 0
| |■変数操作: CSelf47[計算用] = CSelf20[カーソル位置] % CSelf18[横項目数]
| |■条件分岐(変数): 【1】 CSelf47[計算用] が 0 と同じ
| |-◇分岐: 【1】 [ CSelf47[計算用] が 0 と同じ ]の場合↓
| | |■変数操作: CSelf20[カーソル位置] -= CSelf18[横項目数] + 0
| | |■
| |◇分岐終了◇
| |▼ 最下行で項目が存在しない位置へカーソルを移動させた時に左端へ移動
| |■変数操作: CSelf47[計算用] = CSelf20[カーソル位置] + 0
| |■変数操作: CSelf47[計算用] += CSelf21[スクロール行数] * CSelf18[横項目数]
| |■条件分岐(変数): 【1】 CSelf47[計算用] が CSelf23[所持有り総数] 以上
| |-◇分岐: 【1】 [ CSelf47[計算用] が CSelf23[所持有り総数] 以上 ]の場合↓
| | |■変数操作: CSelf20[カーソル位置] /= CSelf18[横項目数] + 0
| | |■変数操作: CSelf20[カーソル位置] *= CSelf18[横項目数] + 0
| | |■
| |◇分岐終了◇
| |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|◇分岐終了◇
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■決定の処理
■変数操作: CSelf20[カーソル位置] += CSelf21[スクロール行数] * CSelf18[横項目数]
■DB読込(可変): CSelf43[アイテムID] = 可変DB[ 一覧表用 : CSelf20[カーソル位置] : 0 ] (20 : - : アイテムID)
■条件分岐(変数): 【1】 CSelf43[アイテムID] が 0 と同じ
-◇分岐: 【1】 [ CSelf43[アイテムID] が 0 と同じ ]の場合↓
|●ラベル「終了」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇
■変数操作: CSelf44[ユーザータイプID] = CSelf43[アイテムID] / 10000
■変数操作: CSelf43[アイテムID] %= 10000 + 0
■文章:「\udb[\cself[44]:\cself[43]:0]」を決定。
●ラベル地点「終了」 <<<<<<<<<<<<<<<<<<<<<<<<★
■ピクチャ消去:1 〜 399 / 0(0)フレーム


以上で設定完了です。


▲トップへ戻る▲



◎関連ページ

◆アイテムの一覧表の自作メニューを作る
┣◆アイテムの一覧表を「横2×縦12」に改造
┣◆アイテムの一覧表に説明画面を追加
┣◆アイテムの一覧表をマウスで操作
┗◆アイテムの一覧表にスクロールバーを追加

◆自作メニューの基礎講座(4×3の自作メニュー作り)

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

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