[掲示板へもどる]
一括表示

記事No: 21720 [関連記事]
タイトルバックログ画面でのスクロール停止について
投稿日: 2025/06/09 15:56
投稿者ひろ [FrrdLrFW791]

バックログ画面でのスクロール停止について (画像サイズ: 640×480 26kB)

[やりたいこと]
・バックログ表示画面で現在表示されているログ数によってスクロールを停止させたい
黒帯(文字列スクロール時に文字が隠れるように設置)
4←最古のログ


1←最新のログ
黒帯(文字列スクロール時に文字が隠れるように設置)
このようなログ表示画面を表示させています。
1、4までスクロールさせたらそれ以上スクロールさせないようにしたい。

[やってみたこと]
ログを表示しているピクチャの画像サイズ(縦)とY座標を取得して、ピクチャのサイズがピクチャのY座標一定値以下、以上ならスクロール停止させてみた。

[やってみた結果、どううまくいかないか]
上記の方法で最新のログまでスクロールさせてから↓キーを押してのスクロール停止は問題無く動いているようですが、最古のログまでスクロールさせてから↑キーを押すと停止はするのですが、取得ログの状況によっては添付画像の様に
文字が見切れたりして安定しませんでした。画像のスクロールバーはこんな風にしてみたいと言う理想です。

ログ表示画面表示に関して参考にしたサイト:http://yado.tk/wolf/
以下、コマンド文、コード記載します。
宜しくお願い致します。

■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ 【2】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ
-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
|▼ メッセージウィンドウに表示されている文字列を取得しCSelf5に格納
|■文字列操作:CSelf5[取得文字列] = SysS25[[読]文章表示の内容]
|▼ 取得文字列重複判定を行う
|■条件分岐(文字): 【1】 CSelf5[取得文字列]が CSelf7[文字列重複確認用] 以外
|-◇分岐: 【1】 [ CSelf5[取得文字列] CSelf7[文字列重複確認用] 以外 ]の場合↓
| |▼ 取得した文字列がすでに取得している文字列と違う場合
| |▼ ログ保持数を+1
| |■変数操作: CSelf2[ログ保持数] += 1 + 0
| |■条件分岐(変数): 【1】 CSelf2[ログ保持数] が 10 以上
| |-◇分岐: 【1】 [ CSelf2[ログ保持数] が 10 以上 ]の場合↓
| | |■文字列操作:CSelf6[ログ表示文字] =<の指定文字以降を切り出し> "―――――――――――――――――――――――"
| | |■変数操作: CSelf2[ログ保持数] -= 1 + 0
| | |■
| |◇分岐終了◇
| |▼ 先に表示してある文字列の後ろに改行、区切りライン、改行を挿入する ※下のラインが最初に表示される
| |■文字列操作:CSelf6[ログ表示文字] += "\n―――――――――――――――――――――――\n"
| |■文字列操作:CSelf6[ログ表示文字] += CSelf5[取得文字列]
| |▼ 取得した文字列を文字列重複確認用CSelf7に格納
| |■文字列操作:CSelf7[文字列重複確認用] = CSelf5[取得文字列]
| |■
|◇分岐終了◇
|■キー入力:CSelf0[キーボード判定]キーボード(100〜) [キーコード[131]のみ判定] ( Sキー )
|■キー入力:CSelf1[パッド判定]パッド(300〜) [キーコード[307]のみ判定] ( ENDキー )
|■条件分岐(変数): 【1】 CSelf0[キーボード判定] が 131 と同じ 【2】 CSelf1[パッド判定] が 307 と同じ
|-◇分岐: 【1】 [ CSelf0[キーボード判定] が 131 と同じ ]の場合↓
| |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|-◇分岐: 【2】 [ CSelf1[パッド判定] が 307 と同じ ]の場合↓
| |●ラベル地点「キー処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
| |▼ イベント実行中や移動中の場合は、最大5フレームまで終了を待つ
| |■回数付きループ [ 5 ]回
| | |●ラベル地点「ログ」 <<<<<<<<<<<<<<<<<<<<<<<<★
| | |■変数操作+: CSelf11[別マップ移動チェック] = 現在のマップID
| | |■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 0 と同じ
| | |-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 0 と同じ ]の場合↓
| | | |■条件分岐(変数): 【1】 Sys35:主人公移動中?(1=YES) マスの間にいるかどう が 0 と同じ
| | | |-◇分岐: 【1】 [ Sys35:主人公移動中?(1=YES) マスの間にいるかどう が 0 と同じ ]の場合↓
| | | | |▼ 別のマップへ移動していたら、自作メニューは起動しない
| | | | |■変数操作+: CSelf11[別マップ移動チェック] -= 現在のマップID
| | | | |■条件分岐(変数): 【1】 CSelf11[別マップ移動チェック] が 0 と同じ
| | | | |-◇分岐: 【1】 [ CSelf11[別マップ移動チェック] が 0 と同じ ]の場合↓
| | | | | |▼ 自作メニューを表示(移動しないように一時的にキー入力を禁止する)
| | | | | |■キー入力禁止/許可: ↓キー ←キー →キー ↑キー [ 移動時× キー入力○ ]
| | | | | |■次イベントの予約: [このコモンから+0] コモン409:[ テスト中 ]
| | | | | |■ウェイト:1 フレーム
| | | | | |■キー入力禁止/許可: ↓キー ←キー →キー ↑キー [ 移動時○ キー入力○ ]
| | | | | |▼ 自作メニューの処理が終わるまでループし続ける
| | | | | |■
| | | | |◇分岐終了◇
| | | | |▼ サブキーを押し続けている場合は、サブキーを離すまでループし続ける
| | | | |■ループ開始
| | | | | |■キー入力:CSelf0[キーボード判定]キーボード(100〜) [キーコード[131]のみ判定] ( Sキー )
| | | | | |■キー入力:CSelf1[パッド判定]パッド(300〜) [キーコード[307]のみ判定] ( ENDキー )
| | | | | |■条件分岐(変数): 【1】 CSelf0[キーボード判定] が 0 と同じ 【2】 CSelf1[パッド判定] が 0 と同じ
| | | | | |-◇分岐: 【1】 [ CSelf0[キーボード判定] が 0 と同じ ]の場合↓
| | | | | | |■イベント処理中断
| | | | | | |■
| | | | | |-◇分岐: 【2】 [ CSelf1[パッド判定] が 0 と同じ ]の場合↓
| | | | | | |■イベント処理中断
| | | | | | |■
| | | | | |◇分岐終了◇
| | | | | |■ウェイト:1 フレーム
| | | | | |■
| | | | |◇ループここまで◇◇
| | | | |■
| | | |◇分岐終了◇
| | | |■
| | |◇分岐終了◇
| | |■
| |◇ループここまで◇◇
| |■キー入力禁止/許可: ↓キー ←キー →キー ↑キー [ 移動時× キー入力○ ]
| |■キー入力禁止/許可: 決定 キャンセル サブ [ 移動時× キー入力× ]
| |▼ ログ表示の時邪魔になる特殊文字を削除する
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> "\font[2]"
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> "\f[18]"
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> "\f[12]"
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> "\."
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> "\sp"
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> " "
| |▼ ログ表示画面背景 表示 不透明度200 ピクチャ100000
| |■ピクチャ表示:100000 [左上]ウィンドウ「<SQUARE>」サイズ[320,240] X:0 Y:0 / 0(0)フレーム / パターン 1 / 透 200 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
| |▼ ログ表示画面上下に黒帯 表示 不透明度255 ピクチャ100002〜100003
| |■ピクチャ表示:100002 [左上]ウィンドウ「<SQUARE>」サイズ[320,16] X:0 Y:0 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
| |■ピクチャ表示:100003 [左下]ウィンドウ「<SQUARE>」サイズ[320,16] X:0 Y:240 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
| |▼ ログ表示 ピクチャ100001
| |■ピクチャ表示:100001 [左下]文字列[\f[10]\cself[6]\f] X:40 Y:220 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |▼ ログ画面上部中央に「Log」の文字表示 ピクチャ100004
| |■ピクチャ表示:100004 [中心]文字列[Log] X:160 Y:8 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[200] G[200] B[200]
| |▼ ログ画面下部中央に「↑・↓:ログの移動←・→:終了」の文字表示 ピクチャ100005
| |■ピクチャ表示:100005 [中心]文字列[\f[10]↑・↓:ロ] X:160 Y:233 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[200] G[200] B[200]
| |▼ ログ画面右にスクロールバーフレーム表示 ピクチャ100006
| |■ピクチャ表示:100006 [左下]ウィンドウ「<SQUARE>FRAME」サイズ[12,200]相対X:298 Y:220 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |▼ ログ画面右にスクロールバー表示 ピクチャ100007
| |■ピクチャ表示:100007 [左下]ウィンドウ「<SQUARE>」サイズ[8,196]相対X:300 Y:218 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |▼ ■■■■■■■■■■■■■■■■■■■■キー処理
| |■変数操作: CSelf10[キーコード] = 0 + 0
| |■ループ開始
| | |■ウェイト:1 フレーム
| | |■変数操作: CSelf16[キー待ち時間] -= 1 + 0
| | |■キー入力:CSelf15[キー入力] 4方向
| | |■条件分岐(変数): 【1】 CSelf15[キー入力] が 0 と同じ 【2】 CSelf17[起動時キー押し禁止] が 1 と同じ
| | |-◇分岐: 【1】 [ CSelf15[キー入力] が 0 と同じ ]の場合↓
| | | |■変数操作: CSelf16[キー待ち時間]〜CSelf17[起動時キー押し禁止] = 0 + 0
| | | |■ループ開始へ戻る
| | | |■
| | |-◇分岐: 【2】 [ CSelf17[起動時キー押し禁止] が 1 と同じ ]の場合↓
| | | |■ループ開始へ戻る
| | | |■
| | |◇分岐終了◇
| | |■条件分岐(変数): 【1】 CSelf15[キー入力] が 4 と同じ 【2】 CSelf15[キー入力] が 6 と同じ
| | |-◇分岐: 【1】 [ CSelf15[キー入力] が 4 と同じ ]の場合↓
| | | |●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | | |■
| | |-◇分岐: 【2】 [ CSelf15[キー入力] が 6 と同じ ]の場合↓
| | | |●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | | |■
| | |◇分岐終了◇
| | |■条件分岐(変数): 【1】 CSelf15[キー入力] が 2 と同じ 【2】 CSelf15[キー入力] が 8 と同じ
| | |-◇分岐: 【1】 [ CSelf15[キー入力] が 2 と同じ ]の場合↓
| | | |■変数操作+: CSelf20 = ピクチャ:100001 の Y座標
| | | |■条件分岐(変数): 【1】 CSelf20 が 220 と同じ
| | | |-◇分岐: 【1】 [ CSelf20 が 220 と同じ ]の場合↓
| | | | |■
| | | |-◇上記以外
| | | | |■ピクチャ移動:100001 相対X:0 Y:-10 / 0(0)フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
| | | | |■ウェイト:1 フレーム
| | | | |■
| | | |◇分岐終了◇
| | | |■ループ開始へ戻る
| | | |■
| | |-◇分岐: 【2】 [ CSelf15[キー入力] が 8 と同じ ]の場合↓
| | | |■変数操作+: CSelf20 = ピクチャ:100001 の Y座標
| | | |■変数操作+: CSelf21 = ピクチャ:100001 の 画像サイズ(縦)
| | | |■条件分岐(変数): 【1】 CSelf20 が CSelf21 以上
| | | |-◇分岐: 【1】 [ CSelf20 が CSelf21 以上 ]の場合↓
| | | | |■
| | | |-◇上記以外
| | | | |■ピクチャ移動:100001 相対X:0 Y:10 / 0(0)フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
| | | | |■ウェイト:1 フレーム
| | | | |■
| | | |◇分岐終了◇
| | | |■ウェイト:1 フレーム
| | | |■ループ開始へ戻る
| | | |■
| | |◇分岐終了◇
| | |■条件分岐(変数): 【1】 CSelf16[キー待ち時間] が 1 以上
| | |-◇分岐: 【1】 [ CSelf16[キー待ち時間] が 1 以上 ]の場合↓
| | | |■ループ開始へ戻る
| | | |■
| | |◇分岐終了◇
| | |■
| |◇ループここまで◇◇
| |▼ ■■■■■■■■■■終了処理
| |●ラベル地点「キャンセル」 <<<<<<<<<<<<<<<<<<<<<<<<★
| |▼ ログ画面で使用したピクチャ消去 ピクチャ100001〜100007
| |■ピクチャ消去:100000 〜 100007 / 0(0)フレーム
| |■ウェイト:1 フレーム
| |■キー入力禁止/許可: 決定 キャンセル サブ ↓キー ←キー →キー ↑キー [ 移動時○ キー入力○ ]
| |■
|◇分岐終了◇
|■
-◇分岐: 【2】 [ Sys12:メッセージ表示中?(1=ON) が 0 と同じ ]の場合↓
|■
◇分岐終了◇

WoditorEvCOMMAND_START
[111][7,0]<0>(2,9000012,1,2,9000012,0,2)()
[401][1,0]<0>(1)()
[103][0,1]<1>()("メッセージウィンドウに表示されている文字列を取得しCSelf5に格納")
[122][3,0]<1>(1600005,1,9900025)()
[103][0,1]<1>()("取得文字列重複判定を行う")
[112][3,4]<1>(1,286812677,1600007)("","","","")
[401][1,0]<1>(1)()
[103][0,1]<2>()("取得した文字列がすでに取得している文字列と違う場合")
[103][0,1]<2>()("ログ保持数を+1")
[121][4,0]<2>(1600002,1,0,256)()
[111][4,0]<2>(1,1600002,10,1)()
[401][1,0]<2>(1)()
[122][2,1]<3>(1600006,2816)("―――――――――――――――――――――――")
[121][4,0]<3>(1600002,1,0,512)()
[0][0,0]<3>()()
[499][0,0]<2>()()
[103][0,1]<2>()("先に表示してある文字列の後ろに改行、区切りライン、改行を挿入する ※下のラインが最初に表示される")
[122][2,1]<2>(1600006,256)("<\n>―――――――――――――――――――――――<\n>")
[122][3,0]<2>(1600006,257,1600005)()
[103][0,1]<2>()("取得した文字列を文字列重複確認用CSelf7に格納")
[122][3,0]<2>(1600007,1,1600005)()
[0][0,0]<2>()()
[499][0,0]<1>()()
[123][3,0]<1>(1600000,4352,131)()
[123][3,0]<1>(1600001,4608,307)()
[111][7,0]<1>(2,1600000,131,2,1600001,307,2)()
[401][1,0]<1>(1)()
[213][0,1]<2>()("キー処理")
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[212][0,1]<2>()("キー処理")
[103][0,1]<2>()("イベント実行中や移動中の場合は、最大5フレームまで終了を待つ")
[179][1,0]<2>(5)()
[212][0,1]<3>()("ログ")
[124][3,0]<3>(1600011,12288,0)()
[111][4,0]<3>(1,9000013,0,2)()
[401][1,0]<3>(1)()
[111][4,0]<4>(1,9000035,0,2)()
[401][1,0]<4>(1)()
[103][0,1]<5>()("別のマップへ移動していたら、自作メニューは起動しない")
[124][3,0]<5>(1600011,12800,0)()
[111][4,0]<5>(1,1600011,0,2)()
[401][1,0]<5>(1)()
[103][0,1]<6>()("自作メニューを表示(移動しないように一時的にキー入力を禁止する)")
[126][1,0]<6>(496)()
[211][2,0]<6>(600100,0)()
[180][1,0]<6>(1)()
[126][1,0]<6>(240)()
[103][0,1]<6>()("自作メニューの処理が終わるまでループし続ける")
[0][0,0]<6>()()
[499][0,0]<5>()()
[103][0,1]<5>()("サブキーを押し続けている場合は、サブキーを離すまでループし続ける")
[170][0,0]<5>()()
[123][3,0]<6>(1600000,4352,131)()
[123][3,0]<6>(1600001,4608,307)()
[111][7,0]<6>(2,1600000,0,2,1600001,0,2)()
[401][1,0]<6>(1)()
[172][0,0]<7>()()
[0][0,0]<7>()()
[401][1,0]<6>(2)()
[172][0,0]<7>()()
[0][0,0]<7>()()
[499][0,0]<6>()()
[180][1,0]<6>(1)()
[0][0,0]<6>()()
[498][0,0]<5>()()
[0][0,0]<5>()()
[499][0,0]<4>()()
[0][0,0]<4>()()
[499][0,0]<3>()()
[0][0,0]<3>()()
[498][0,0]<2>()()
[126][1,0]<2>(496)()
[126][1,0]<2>(519)()
[103][0,1]<2>()("ログ表示の時邪魔になる特殊文字を削除する")
[122][2,1]<2>(1600006,2048)("\font[2]")
[122][2,1]<2>(1600006,2048)("\f[18]")
[122][2,1]<2>(1600006,2048)("\f[12]")
[122][2,1]<2>(1600006,2048)("\.")
[122][2,1]<2>(1600006,2048)("\sp")
[122][2,1]<2>(1600006,2048)(" ")
[103][0,1]<2>()("ログ表示画面背景 表示 不透明度200 ピクチャ100000")
[150][18,1]<2>(48,100000,0,320,240,1,200,0,0,100,0,0,33554432,0,0,0,0,0)("<SQUARE>")
[103][0,1]<2>()("ログ表示画面上下に黒帯 表示 不透明度255 ピクチャ100002〜100003")
[150][18,1]<2>(48,100002,0,320,16,1,255,0,0,100,0,0,33554432,0,0,0,0,0)("<SQUARE>")
[150][18,1]<2>(8240,100003,0,320,16,1,255,0,240,100,0,0,33554432,0,0,0,0,0)("<SQUARE>")
[103][0,1]<2>()("ログ表示 ピクチャ100001")
[150][11,1]<2>(8224,100001,0,1,1,1,255,40,220,100,0)("\f[10]\cself[6]\f[12]")
[103][0,1]<2>()("ログ画面上部中央に「Log」の文字表示 ピクチャ100004")
[150][18,1]<2>(4128,100004,0,1,1,1,255,160,8,100,0,0,33554432,0,0,200,200,200)("Log")
[103][0,1]<2>()("ログ画面下部中央に「↑・↓:ログの移動←・→:終了」の文字表示 ピクチャ100005")
[150][18,1]<2>(4128,100005,0,1,1,1,255,160,233,100,0,0,33554432,0,0,200,200,200)("\f[10]↑・↓:ログの移動\mx[32]←・→:終了\f[12]")
[103][0,1]<2>()("ログ画面右にスクロールバーフレーム表示 ピクチャ100006")
[150][11,1]<2>(73776,100006,0,12,200,1,255,298,220,100,0)("<SQUARE>FRAME")
[103][0,1]<2>()("ログ画面右にスクロールバー表示 ピクチャ100007")
[150][11,1]<2>(73776,100007,0,8,196,1,255,300,218,100,0)("<SQUARE>")
[103][0,1]<2>()("■■■■■■■■■■■■■■■■■■■■キー処理")
[121][4,0]<2>(1600010,0,0,0)()
[170][0,0]<2>()()
[180][1,0]<3>(1)()
[121][4,0]<3>(1600016,1,0,512)()
[123][2,0]<3>(1600015,1)()
[111][7,0]<3>(2,1600015,0,2,1600017,1,2)()
[401][1,0]<3>(1)()
[121][5,0]<4>(1600016,0,0,65536,1)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[401][1,0]<3>(2)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[499][0,0]<3>()()
[111][7,0]<3>(2,1600015,4,2,1600015,6,2)()
[401][1,0]<3>(1)()
[213][0,1]<4>()("キャンセル")
[0][0,0]<4>()()
[401][1,0]<3>(2)()
[213][0,1]<4>()("キャンセル")
[0][0,0]<4>()()
[499][0,0]<3>()()
[111][7,0]<3>(2,1600015,2,2,1600015,8,2)()
[401][1,0]<3>(1)()
[124][4,0]<4>(1600020,16384,100001,1)()
[111][4,0]<4>(17,1600020,220,2)()
[401][1,0]<4>(1)()
[0][0,0]<5>()()
[420][1,0]<4>(0)()
[150][13,0]<5>(4263681,100001,0,0,0,1,-1000000,0,-10,-1000000,-1000000,0,16777216)()
[180][1,0]<5>(1)()
[0][0,0]<5>()()
[499][0,0]<4>()()
[176][0,0]<4>()()
[0][0,0]<4>()()
[401][1,0]<3>(2)()
[124][4,0]<4>(1600020,16384,100001,1)()
[124][4,0]<4>(1600021,16384,100001,3)()
[111][4,0]<4>(17,1600020,1600021,1)()
[401][1,0]<4>(1)()
[0][0,0]<5>()()
[420][1,0]<4>(0)()
[150][13,0]<5>(4263681,100001,0,0,0,1,-1000000,0,10,-1000000,-1000000,0,16777216)()
[180][1,0]<5>(1)()
[0][0,0]<5>()()
[499][0,0]<4>()()
[180][1,0]<4>(1)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[499][0,0]<3>()()
[111][4,0]<3>(1,1600016,1,1)()
[401][1,0]<3>(1)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[499][0,0]<3>()()
[0][0,0]<3>()()
[498][0,0]<2>()()
[103][0,1]<2>()("■■■■■■■■■■終了処理")
[212][0,1]<2>()("キャンセル")
[103][0,1]<2>()("ログ画面で使用したピクチャ消去 ピクチャ100001〜100007")
[150][6,0]<2>(16777218,100000,0,0,0,100007)()
[180][1,0]<2>(1)()
[126][1,0]<2>(247)()
[0][0,0]<2>()()
[499][0,0]<1>()()
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END


記事No: 21721 [関連記事]
タイトルRe: バックログ画面でのスクロール停止について
投稿日: 2025/06/09 15:58
投稿者ひろ [FrrdLrFW791]

使用バージョンの記載を忘れていました。
バージョンは2.294です。


記事No: 21722 [関連記事]
タイトルRe: バックログ画面でのスクロール停止について
投稿日: 2025/06/09 22:15
投稿者YADO [LerLWW459]

上移動の時の
■変数操作+: CSelf20 = ピクチャ:100001 の Y座標
■変数操作+: CSelf21 = ピクチャ:100001 の 画像サイズ(縦)
■条件分岐(変数): 【1】 CSelf20 が CSelf21 以上
の設定では、上部にある黒幕の縦16ピクセルが考慮されていないため、最後の移動が足りていない状態になっています。

設定するなら
■変数操作+: CSelf21 = ピクチャ:100001 の 画像サイズ(縦)
■変数操作: CSelf21 += 16 + 0
と言った感じになるかと思います。

また移動処理が「10ピクセル単位の移動」だと「移動し過ぎ」などの問題が発生する可能性があるため、
「ループ10回で1ピクセルずつ移動」の処理に変えた方が良いでしょう。

▼移動処理の部分のみ
■条件分岐(変数): 【1】 CSelf15 が 2 と同じ 【2】 CSelf15 が 8 と同じ
-◇分岐: 【1】 [ CSelf15 が 2 と同じ ]の場合↓
|■回数付きループ [ 10 ]回
||■変数操作+: CSelf20 = ピクチャ:100001 の Y座標
||■条件分岐(変数): 【1】 CSelf20 が 220 と同じ
||-◇分岐: 【1】 [ CSelf20 が 220 と同じ ]の場合↓
|||■ループ中断
|||■
||-◇上記以外
|||■ピクチャ移動:100001 相対X:0 Y:-1 / 0(0)フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■ウェイト:1 フレーム
|■ループ開始へ戻る
|■
-◇分岐: 【2】 [ CSelf15 が 8 と同じ ]の場合↓
|■変数操作+: CSelf21 = ピクチャ:100001 の 画像サイズ(縦)
|■変数操作: CSelf21 += 16 + 0
|■回数付きループ [ 10 ]回
||■変数操作+: CSelf20 = ピクチャ:100001 の Y座標
||■条件分岐(変数): 【1】 CSelf20 が CSelf21 以上
||-◇分岐: 【1】 [ CSelf20 が CSelf21 以上 ]の場合↓
|||■ループ中断
|||■
||-◇上記以外
|||■ピクチャ移動:100001 相対X:0 Y:1 / 0(0)フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■ウェイト:1 フレーム
|■ループ開始へ戻る
|■
◇分岐終了◇

WoditorEvCOMMAND_START
[111][7,0]<0>(2,1600015,2,2,1600015,8,2)()
[401][1,0]<0>(1)()
[179][1,0]<1>(10)()
[124][4,0]<2>(1600020,16384,100001,1)()
[111][4,0]<2>(17,1600020,220,2)()
[401][1,0]<2>(1)()
[171][0,0]<3>()()
[0][0,0]<3>()()
[420][1,0]<2>(0)()
[150][13,0]<3>(4263681,100001,0,0,0,1,-1000000,0,-1,-1000000,-1000000,0,16777216)()
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[498][0,0]<1>()()
[180][1,0]<1>(1)()
[176][0,0]<1>()()
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[124][4,0]<1>(1600021,16384,100001,3)()
[121][4,0]<1>(1600021,16,0,256)()
[179][1,0]<1>(10)()
[124][4,0]<2>(1600020,16384,100001,1)()
[111][4,0]<2>(17,1600020,1600021,1)()
[401][1,0]<2>(1)()
[171][0,0]<3>()()
[0][0,0]<3>()()
[420][1,0]<2>(0)()
[150][13,0]<3>(4263681,100001,0,0,0,1,-1000000,0,1,-1000000,-1000000,0,16777216)()
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[498][0,0]<1>()()
[180][1,0]<1>(1)()
[176][0,0]<1>()()
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END


記事No: 21723 [関連記事]
タイトルRe: バックログ画面でのスクロール停止について
投稿日: 2025/06/10 22:46
投稿者ひろ [FrrdLrFW791]

返信ありがとうございます。

ご提示いただいたコードを使ってスクロールさせてみると、文字が見切れたりする事無くスクロールが停止するようになりました。
YADOさんのお力添えでゲームの完成にまた一歩近づきました。

バックログ画面制作にあたり、また自分では分からない問題が出てくるかもしれません。まずは自己解決するよう努め、それでもどうにもならない時は再度質問させていただくかもしれませんが、その時は宜しくお願い致します。

本当にありがとうございました!


記事No: 21724 [関連記事]
タイトルRe: バックログ画面の表示、非表示について
投稿日: 2025/06/20 00:34
投稿者ひろ [FrrdLrFW791]

Re: バックログ画面の表示、非表示について (画像サイズ: 640×480 17kB)

バックログ画面制作にあたり、自分では解決が難しい問題が発生したので質問させていただきます。

[やりたいこと]
同一キーによるログ画面の表示、非表示。

[やってみたこと]
・ログ画面起動キーを新押しした時のみキーコードを取得するようにした。
新押しに関して参考にしたページ:hhttps://zoyazoya.exblog.jp/32670633/
・最新バージョン3.624でログ画面起動キーのキーコードを新押し時のみ取得するようにした。

[やってみた結果、どううまくいかないか]
・ログ画面が高速で表示、非表示を繰り返す。
・最新バージョン3.624では不具合なく動作した。

以前の質問では
キーボードのSキーまたはゲームパッドのR1キーでログ画面の表示。
↑、↓キーでログの移動。←、→キーでログ画面の非表示。

だったものを

キーボードのSキーまたはゲームパッドのR1キーでログ画面の表示、非表示。
↑、↓キーでログの移動。←キーで最新のログへ移動。→キーで最古のログへ移動。

と変更して制作していたのですが、Sキー、R1キーでのログ画面表示、非表示が上手くいきません。
メニュー画面を開くようにSキー、R1キーを押すたびにログ画面の表示、非表示としたいのですが、現状ではログ画面が高速で表示、非表示を繰り返してしまいます。

最新バージョンで新押し時のみ取得に設定すると上手く動くのを確認したので、バージョンは2.294での新押し時のみ取得が出来れば最新バージョンと同じ動きをするのではと思って情報を調べて、コモンに組み込んで試してみましたが上記ようにログ画面が高速で表示、非表示してしまいました。

以下、コマンド文とイベントコードを提示します。
宜しくお願い致します。

■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ 【2】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ
-◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
|▼ ■■■■■■■■■■■■■■■■■■■■ログ取得■■■■■■■■■■■■■■■■■■■■
|▼ メッセージウィンドウに表示されている文字列を取得しCSelf5に格納
|■文字列操作:CSelf5[取得文字列] = SysS25[[読]文章表示の内容]
|▼ 取得文字列重複判定を行う
|■条件分岐(文字): 【1】 CSelf5[取得文字列]が CSelf7[文字列重複確認用] 以外
|-◇分岐: 【1】 [ CSelf5[取得文字列] CSelf7[文字列重複確認用] 以外 ]の場合↓
| |▼ 取得した文字列(CSelf5)がすでに取得している文字列(CSelf7)と違う場合
| |▼ ログ保持数に+1
| |■変数操作: CSelf2[ログ保持数] += 1 + 0
| |■条件分岐(変数): 【1】 CSelf2[ログ保持数] が 16 以上
| |-◇分岐: 【1】 [ CSelf2[ログ保持数] が 16 以上 ]の場合↓
| | |▼ ■■■■■■■■■■■■■■■■■■■■ログ削除処理■■■■■■■■■■■■■■■■■■■■
| | |▼ ログの保持数はCSelf2の数値−1 例:条件がログ保持数10以上ならログ保持数は9
| | |▼ 最古のログを1メッセージ分削除する
| | |■文字列操作:CSelf6[ログ表示文字] =<の指定文字以降を切り出し> "\my[-6]\n―――――――――――――――――――――――"
| | |▼ ログ保持数が最大になってメッセージ削除しなくならないようログ保持数に−1する
| | |■変数操作: CSelf2[ログ保持数] -= 1 + 0
| | |■
| |◇分岐終了◇
| |▼ 先に表示してある文字列の後ろに改行、区切りライン、改行を挿入する ※下のラインが最初に表示される
| |■条件分岐(変数): 【1】 CSelf2[ログ保持数] が 1 以下
| |-◇分岐: 【1】 [ CSelf2[ログ保持数] が 1 以下 ]の場合↓
| | |▼ 1つ目のログ表示は区切りラインを表示しない+文字列表示のズレを補正する
| | |■文字列操作:CSelf6[ログ表示文字] += "\my[22]"
| | |■
| |-◇上記以外
| | |■文字列操作:CSelf6[ログ表示文字] += "\my[-6]\n―――――――――――――――――――――――\n"
| | |■
| |◇分岐終了◇
| |■文字列操作:CSelf6[ログ表示文字] += CSelf5[取得文字列]
| |▼ 取得した文字列を文字列重複確認用CSelf7に格納
| |■文字列操作:CSelf7[文字列重複確認用] = CSelf5[取得文字列]
| |■
|◇分岐終了◇
|▼ キーボードのS、またはパッドのR1を押下するとログ画面表示
|■キー入力:CSelf0[キーボード判定]キーボード(100〜) [キーコード[131]のみ判定] ( Sキー )
|■キー入力:CSelf1[パッド判定]パッド(300〜) [キーコード[307]のみ判定] ( ENDキー )
|■条件分岐(変数): 【1】 CSelf0[キーボード判定] が 131 と同じ 【2】 CSelf1[パッド判定] が 307 と同じ
|-◇分岐: 【1】 [ CSelf0[キーボード判定] が 131 と同じ ]の場合↓
| |●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| |■
|-◇分岐: 【2】 [ CSelf1[パッド判定] が 307 と同じ ]の場合↓
| |●ラベル地点「キー処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
| |▼ ログ画面表示時に移動しないようキー入力を移動時×にする
| |■キー入力禁止/許可: ↓キー ←キー →キー ↑キー [ 移動時× キー入力○ ]
| |▼ ログ画面で使用しないキー入力を禁止
| |■キー入力禁止/許可: 決定 キャンセル サブ [ 移動時× キー入力× ]
| |■次イベントの予約: [このコモンから+0] コモン393:[ ログテスト ]
| |■ウェイト:1 フレーム
| |▼ ログ表示の時邪魔になる特殊文字を削除する
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> "\."
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> "\sp"
| |■文字列操作:CSelf6[ログ表示文字] =<から→の文字列を全消去> " "
| |▼ ■■■■■■■■■■■■■■■■■■■■ログ初期表示■■■■■■■■■■■■■■■■■■■■
| |▼ ログ表示画面背景 表示 不透明度200 ピクチャ100000
| |■ピクチャ表示:100000 [左上]ウィンドウ「<SQUARE>」サイズ[320,240] X:0 Y:0 / 0(0)フレーム / パターン 1 / 透 200 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
| |▼ ログ表示 ピクチャ100001
| |■ピクチャ表示:100001 [左下]文字列[\f[10]\cself[6]\f] X:45 Y:220 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |▼ ログ表示画面上下に黒帯 表示 不透明度255 ピクチャ100002〜100003
| |■ピクチャ表示:100002 [左上]ウィンドウ「<SQUARE>」サイズ[320,16] X:0 Y:0 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
| |■ピクチャ表示:100003 [左下]ウィンドウ「<SQUARE>」サイズ[320,16] X:0 Y:240 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
| |▼ ログ画面上部中央に「Log」の文字表示 ピクチャ100004
| |■ピクチャ表示:100004 [中心]文字列[Log] X:160 Y:8 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[200] G[200] B[200]
| |▼ ログ画面下部中央に「↑・↓:ログ移動 ←:最新ログ →:最古ログ S:終了」の文字表示 ピクチャ100005
| |■ピクチャ表示:100005 [中心]文字列[\f[10]↑・↓:ロ] X:160 Y:233 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[200] G[200] B[200]
| |▼ ログが表示されているピクチャのY座標をCSelf20に格納
| |■変数操作+: CSelf20[ピクチャY座標] = ピクチャ:100001 の Y座標
| |▼ ログが表示されているピクチャの画像サイズ(縦)をCSelf21に格納
| |■変数操作+: CSelf21[ピクチャ縦サイズ] = ピクチャ:100001 の 画像サイズ(縦)
| |▼ 画面上部のメッセージスクロール隠しラインの16ピクセル分CSelf21に加算する
| |■変数操作: CSelf21[ピクチャ縦サイズ] += 16 + 0
| |▼ ログを表示しているピクチャのY座標とピクチャ縦サイズの差を計算してCSelf22に格納
| |■変数操作: CSelf22[座標と縦サイズの差] = CSelf20[ピクチャY座標] - CSelf21[ピクチャ縦サイズ]
| |■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
| |■条件分岐(変数): 【1】 CSelf22[座標と縦サイズの差] が -1 と同じ
| |-◇分岐: 【1】 [ CSelf22[座標と縦サイズの差] が -1 と同じ ]の場合↓
| | |▼ 1行の文字列が9個保持された状態でログを表示するとスクロール不可状態にもかかわらずスクロールしてしまうので、ラベル処理で強引に▲を暗く表示+スクロール不可状態にする
| | |■変数操作: CSelf23[スクロール不可フラグ] = 1 + 0
| | |●ラベル「スクロール強制停止1」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | |■
| |◇分岐終了◇
| |■条件分岐(変数): 【1】 CSelf20[ピクチャY座標] が CSelf21[ピクチャ縦サイズ] 以上
| |-◇分岐: 【1】 [ CSelf20[ピクチャY座標] が CSelf21[ピクチャ縦サイズ] 以上 ]の場合↓
| | |●ラベル地点「スクロール強制停止1」 <<<<<<<<<<<<<<<<<<<<<<<<★
| | |▼ ログ画面右上に▲表示 ピクチャ100006 不透明度150
| | |▼ ↑キーでスクロール出来るログが無い場合は▲を暗くする
| | |■ピクチャ表示:100006 [左上]文字列[▲] X:298 Y:20 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | |■
| |-◇上記以外
| | |▼ ログ画面右上に▲表示 ピクチャ100006 不透明度255
| | |▼ ↑キーでスクロール出来るログがある場合は▲を明るくする
| | |■ピクチャ表示:100006 [左上]文字列[▲] X:298 Y:20 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | |■
| |◇分岐終了◇
| |▼ ログ画面右下に▼表示 ピクチャ100007 不透明度150
| |▼ ログは左下から上に積み重なるように表示されるのでログ保持数に関係無く▼の初期表示は暗くする
| |■ピクチャ表示:100007 [左上]文字列[▼] X:298 Y:210 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| |▼ ■■■■■■■■■■■■■■■■■■■■ログ初期表示ここまで■■■■■■■■■■■■■■■■■■■■
| |▼
| |▼ ■■■■■■■■■■■■■■■■■■■■キー処理■■■■■■■■■■■■■■■■■■■■
| |■変数操作: CSelf0[キーボード判定] = 0 + 0
| |■変数操作: CSelf1[パッド判定] = 0 + 0
| |■変数操作: CSelf10[キーコード] = 0 + 0
| |■ループ開始
| | |■ウェイト:1 フレーム
| | |■キー入力:CSelf0[キーボード判定]キーボード(100〜) [キーコード[131]のみ判定] ( Sキー )
| | |■キー入力:CSelf1[パッド判定]パッド(300〜) [キーコード[307]のみ判定] ( ENDキー )
| | |■条件分岐(変数): 【1】 CSelf0[キーボード判定] が 131 と同じ 【2】 CSelf1[パッド判定] が 307 と同じ
| | |-◇分岐: 【1】 [ CSelf0[キーボード判定] が 131 と同じ ]の場合↓
| | | |▼ Sキー入力でログ画面の終了
| | | |●ラベル「C」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | | |■
| | |-◇分岐: 【2】 [ CSelf1[パッド判定] が 307 と同じ ]の場合↓
| | | |▼ R1キー入力でログ画面の終了
| | | |●ラベル地点「C」 <<<<<<<<<<<<<<<<<<<<<<<<★
| | | |●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | | |■
| | |◇分岐終了◇
| | |■キー入力:CSelf15[キー入力] 4方向
| | |■変数操作: CSelf16[キー待ち時間] -= 1 + 0
| | |■条件分岐(変数): 【1】 CSelf15[キー入力] が 0 と同じ 【2】 CSelf17[起動時キー押し禁止] が 1 と同じ
| | |-◇分岐: 【1】 [ CSelf15[キー入力] が 0 と同じ ]の場合↓
| | | |■変数操作: CSelf16[キー待ち時間]〜CSelf17[起動時キー押し禁止] = 0 + 0
| | | |■ループ開始へ戻る
| | | |■
| | |-◇分岐: 【2】 [ CSelf17[起動時キー押し禁止] が 1 と同じ ]の場合↓
| | | |■ループ開始へ戻る
| | | |■
| | |◇分岐終了◇
| | |■ウェイト:1 フレーム
| | |■条件分岐(変数): 【1】 CSelf15[キー入力] が 4 と同じ 【2】 CSelf15[キー入力] が 6 と同じ
| | |-◇分岐: 【1】 [ CSelf15[キー入力] が 4 と同じ ]の場合↓
| | | |▼ 最新のログに移動
| | | |■ピクチャ移動:100001 X:45 Y:220 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | |▼ ↓キーでスクロール出来るログが無い場合は▼を暗くする
| | | |▼ ログ画面右下に▼表示 ピクチャ100007 不透明度150
| | | |■ピクチャ表示:100007 [左上]文字列[▼] X:298 Y:210 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | |■変数操作+: CSelf24 = ピクチャ:100001 の 画像サイズ(縦)
| | | |■条件分岐(変数): 【1】 CSelf24 が 205 以下
| | | |-◇分岐: 【1】 [ CSelf24 が 205 以下 ]の場合↓
| | | | |▼ ↑キーでスクロール出来るログがある場合は▲を暗くする
| | | | |▼ ログ画面右上に▲表示 ピクチャ100006 不透明度150
| | | | |■ピクチャ表示:100006 [左上]文字列[▲] X:298 Y:20 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | |■
| | | |-◇上記以外
| | | | |▼ ↑キーでスクロール出来るログがある場合は▲を明るくする
| | | | |▼ ログ画面右上に▲表示 ピクチャ100006 不透明度255
| | | | |■ピクチャ表示:100006 [左上]文字列[▲] X:298 Y:20 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | |■
| | | |◇分岐終了◇
| | | |■ループ開始へ戻る
| | | |■
| | |-◇分岐: 【2】 [ CSelf15[キー入力] が 6 と同じ ]の場合↓
| | | |■変数操作+: CSelf20[ピクチャY座標] = ピクチャ:100001 の Y座標
| | | |■変数操作+: CSelf24 = ピクチャ:100001 の 画像サイズ(縦)
| | | |■変数操作: CSelf24 += 16 + 0
| | | |■条件分岐(変数): 【1】 CSelf20[ピクチャY座標] が CSelf24 と同じ 【2】 CSelf24 が 222 以上
| | | |-◇分岐: 【1】 [ CSelf20[ピクチャY座標] が CSelf24 と同じ ]の場合↓
| | | | |■ループ開始へ戻る
| | | | |■
| | | |-◇分岐: 【2】 [ CSelf24 が 222 以上 ]の場合↓
| | | | |▼ 最古のログに移動
| | | | |■ピクチャ移動:100001 X:45 Y:CSelf24 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | |▼ ↑キーでスクロール出来るログが無い場合は▲を暗くする
| | | | |▼ ログ画面右上に▲表示 ピクチャ100006 不透明度150
| | | | |■ピクチャ表示:100006 [左上]文字列[▲] X:298 Y:20 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | |▼ ↓キーでスクロール出来るログがある場合は▼を明るくする
| | | | |▼ ログ画面右下に▼表示 ピクチャ100007 不透明度255
| | | | |■ピクチャ表示:100007 [左上]文字列[▼] X:298 Y:210 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | |■ループ開始へ戻る
| | | | |■
| | | |-◇上記以外
| | | | |■ループ開始へ戻る
| | | | |■
| | | |◇分岐終了◇
| | | |■
| | |◇分岐終了◇
| | |▼ ■■■■■■■■■■■■■■■■■■■■ログ操作■■■■■■■■■■■■■■■■■■■■
| | |■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
| | |■キー入力:CSelf15[キー入力] 4方向
| | |■条件分岐(変数): 【1】 CSelf15[キー入力] が 2 と同じ 【2】 CSelf15[キー入力] が 8 と同じ
| | |-◇分岐: 【1】 [ CSelf15[キー入力] が 2 と同じ ]の場合↓
| | | |▼ ↓キーを押した場合
| | | |■回数付きループ [ 10 ]回
| | | | |▼ ログが表示されているピクチャのY座標をCSelf20に格納
| | | | |■変数操作+: CSelf20[ピクチャY座標] = ピクチャ:100001 の Y座標
| | | | |▼ ログ表示ピクチャのY座標が220(初期表示位置)か判定
| | | | |■条件分岐(変数): 【1】 CSelf20[ピクチャY座標] が 220 と同じ
| | | | |-◇分岐: 【1】 [ CSelf20[ピクチャY座標] が 220 と同じ ]の場合↓
| | | | | |▼ ログの下限に達している場合はスクロール停止
| | | | | |▼ ↓キーでスクロール出来るログが無い場合は▼を暗くする
| | | | | |▼ ログ画面右下に▼表示 ピクチャ100007 不透明度150
| | | | | |■ピクチャ表示:100007 [左上]文字列[▼] X:298 Y:210 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | | |■ループ中断
| | | | | |■
| | | | |-◇上記以外
| | | | | |▼ 新しいログにスクロールさせる(古いログは画面上に移動していく)
| | | | | |■ピクチャ移動:100001 相対X:0 Y:-1 / 0(0)フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
| | | | | |■変数操作+: CSelf20[ピクチャY座標] = ピクチャ:100001 の Y座標
| | | | | |■条件分岐(変数): 【1】 CSelf20[ピクチャY座標] が 220 と同じ
| | | | | |-◇分岐: 【1】 [ CSelf20[ピクチャY座標] が 220 と同じ ]の場合↓
| | | | | | |▼ ログをスクロールさせてログ下限に達したら▼を暗くする
| | | | | | |▼ ログ画面右下に▼表示 ピクチャ100007 不透明度150
| | | | | | |■ピクチャ表示:100007 [左上]文字列[▼] X:298 Y:210 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | | | |■
| | | | | |◇分岐終了◇
| | | | | |■
| | | | |◇分岐終了◇
| | | | |■回数付きループ [ 10 ]回
| | | | | |▼ ログが表示されているピクチャのY座標をCSelf20に格納
| | | | | |■変数操作+: CSelf20[ピクチャY座標] = ピクチャ:100001 の Y座標
| | | | | |▼ ログが表示されているピクチャの画像サイズ(縦)をCSelf21に格納
| | | | | |■変数操作+: CSelf21[ピクチャ縦サイズ] = ピクチャ:100001 の 画像サイズ(縦)
| | | | | |▼ 画面上部のメッセージスクロール隠しラインの16ピクセル分CSelf21に加算する
| | | | | |■変数操作: CSelf21[ピクチャ縦サイズ] += 16 + 0
| | | | | |■条件分岐(変数): 【1】 CSelf20[ピクチャY座標] が CSelf21[ピクチャ縦サイズ] 以下
| | | | | |-◇分岐: 【1】 [ CSelf20[ピクチャY座標] が CSelf21[ピクチャ縦サイズ] 以下 ]の場合↓
| | | | | | |▼ ↑キーでスクロール出来るログがある場合は▲を明るくする
| | | | | | |▼ ログ画面右上に▲表示 ピクチャ100006 不透明度255
| | | | | | |■ピクチャ表示:100006 [左上]文字列[▲] X:298 Y:20 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | | | |■ループ中断
| | | | | | |■
| | | | | |-◇上記以外
| | | | | | |■
| | | | | |◇分岐終了◇
| | | | | |■
| | | | |◇ループここまで◇◇
| | | | |■
| | | |◇ループここまで◇◇
| | | |■ウェイト:1 フレーム
| | | |■ループ開始へ戻る
| | | |■
| | |-◇分岐: 【2】 [ CSelf15[キー入力] が 8 と同じ ]の場合↓
| | | |■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
| | | |■【特】チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
| | | |▼ ↑キーを押した場合
| | | |■条件分岐(変数): 【1】 CSelf23[スクロール不可フラグ] が 1 と同じ
| | | |-◇分岐: 【1】 [ CSelf23[スクロール不可フラグ] が 1 と同じ ]の場合↓
| | | | |■チェックポイント■■■■■■■■■■■■■■■■■■■■■■■■
| | | | |▼ 1行の文字列が9個保持された状態でログを表示するとスクロール不可状態にならずスクロールしてしまうので、ラベル処理で強引に▲を暗く表示+スクロール不可状態にする
| | | | |▼ ■1行文字列が9個の状況はレアケースと思われるが予防的処理■
| | | | |●ラベル「スクロール強制停止2」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
| | | | |■
| | | |◇分岐終了◇
| | | |■回数付きループ [ 10 ]回
| | | | |▼ ログが表示されているピクチャのY座標をCSelf20に格納
| | | | |■変数操作+: CSelf20[ピクチャY座標] = ピクチャ:100001 の Y座標
| | | | |■変数操作+: CSelf21[ピクチャ縦サイズ] = ピクチャ:100001 の 画像サイズ(縦)
| | | | |■条件分岐(変数): 【1】 CSelf21[ピクチャ縦サイズ] が 205 以下 【2】 CSelf20[ピクチャY座標] が 220 と同じ
| | | | |-◇分岐: 【1】 [ CSelf21[ピクチャ縦サイズ] が 205 以下 ]の場合↓
| | | | | |▼ ログをスクロール出来ない場合は▼を暗くする
| | | | | |▼ ログ画面右下に▼表示 ピクチャ100007 不透明度150
| | | | | |■ピクチャ表示:100007 [左上]文字列[▼] X:298 Y:210 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | | |■ループ中断
| | | | | |■
| | | | |-◇分岐: 【2】 [ CSelf20[ピクチャY座標] が 220 と同じ ]の場合↓
| | | | | |▼ ↓キーでスクロール出来るログがある場合は▼を明るくする
| | | | | |▼ ログ画面右下に▼表示 ピクチャ100007 不透明度255
| | | | | |■ピクチャ表示:100007 [左上]文字列[▼] X:298 Y:210 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | | |■ループ中断
| | | | | |■
| | | | |◇分岐終了◇
| | | | |■
| | | |◇ループここまで◇◇
| | | |■回数付きループ [ 10 ]回
| | | | |▼ ログが表示されているピクチャのY座標をCSelf20に格納
| | | | |■変数操作+: CSelf20[ピクチャY座標] = ピクチャ:100001 の Y座標
| | | | |▼ ログが表示されているピクチャの画像サイズ(縦)をCSelf21に格納
| | | | |■変数操作+: CSelf21[ピクチャ縦サイズ] = ピクチャ:100001 の 画像サイズ(縦)
| | | | |▼ 画面上部のメッセージスクロール隠しラインの16ピクセル分CSelf21に加算する
| | | | |■変数操作: CSelf21[ピクチャ縦サイズ] += 16 + 0
| | | | |■条件分岐(変数): 【1】 CSelf20[ピクチャY座標] が CSelf21[ピクチャ縦サイズ] 以上
| | | | |-◇分岐: 【1】 [ CSelf20[ピクチャY座標] が CSelf21[ピクチャ縦サイズ] 以上 ]の場合↓
| | | | | |●ラベル地点「スクロール強制停止2」 <<<<<<<<<<<<<<<<<<<<<<<<★
| | | | | |▼ ログの上限に達している場合はスクロール停止
| | | | | |▼ ↑キーでスクロール出来るログが無い場合は▲を暗くする
| | | | | |▼ ログ画面右上に▲表示 ピクチャ100006 不透明度150
| | | | | |■ピクチャ表示:100006 [左上]文字列[▲] X:298 Y:20 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | | |■ループ中断
| | | | | |■
| | | | |-◇上記以外
| | | | | |▼ 古いログにスクロールさせる(新しいログは画面下に移動していく)
| | | | | |■ピクチャ移動:100001 相対X:0 Y:1 / 0(0)フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
| | | | | |▼ ログが表示されているピクチャのY座標をCSelf20に格納
| | | | | |■変数操作+: CSelf20[ピクチャY座標] = ピクチャ:100001 の Y座標
| | | | | |▼ ログが表示されているピクチャの画像サイズ(縦)をCSelf21に格納
| | | | | |■変数操作+: CSelf21[ピクチャ縦サイズ] = ピクチャ:100001 の 画像サイズ(縦)
| | | | | |▼ 画面上部のメッセージスクロール隠しラインの16ピクセル分CSelf21に加算する
| | | | | |■変数操作: CSelf21[ピクチャ縦サイズ] += 16 + 0
| | | | | |■条件分岐(変数): 【1】 CSelf20[ピクチャY座標] が CSelf21[ピクチャ縦サイズ] 以上
| | | | | |-◇分岐: 【1】 [ CSelf20[ピクチャY座標] が CSelf21[ピクチャ縦サイズ] 以上 ]の場合↓
| | | | | | |▼ ログをスクロールさせてログ上限に達したら▲を暗くする
| | | | | | |▼ ログ画面右上に▲表示 ピクチャ100006 不透明度150
| | | | | | |■ピクチャ表示:100006 [左上]文字列[▲] X:298 Y:20 / 0(0)フレーム / パターン 1 / 透 150 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
| | | | | | |■
| | | | | |◇分岐終了◇
| | | | | |■
| | | | |◇分岐終了◇
| | | | |■
| | | |◇ループここまで◇◇
| | | |■ウェイト:1 フレーム
| | | |■ループ開始へ戻る
| | | |■
| | |◇分岐終了◇
| | |■条件分岐(変数): 【1】 CSelf16[キー待ち時間] が 1 以上
| | |-◇分岐: 【1】 [ CSelf16[キー待ち時間] が 1 以上 ]の場合↓
| | | |■ループ開始へ戻る
| | | |■
| | |◇分岐終了◇
| | |■
| |◇ループここまで◇◇
| |▼ ■■■■■■■■■■■■■■■■■■■■終了処理■■■■■■■■■■■■■■■■■■■■
| |●ラベル地点「キャンセル」 <<<<<<<<<<<<<<<<<<<<<<<<★
| |▼ ログ画面で使用したピクチャ消去 ピクチャ100001〜100007
| |■ピクチャ消去:100000 〜 100007 / 0(0)フレーム
| |▼ 全てのキー入力を許可
| |■キー入力禁止/許可: 決定 キャンセル サブ ↓キー ←キー →キー ↑キー [ 移動時○ キー入力○ ]
| |■ピクチャ消去:100010 / 0(0)フレーム
| |▼ 強引に▲を暗く表示+スクロール不可フラグを消す
| |■変数操作: CSelf23[スクロール不可フラグ] = 0 + 0
| |■ウェイト:1 フレーム
| |■
|◇分岐終了◇
|■
-◇分岐: 【2】 [ Sys12:メッセージ表示中?(1=ON) が 0 と同じ ]の場合↓
|▼ メッセージが表示されていない場合は何もしない
|■
◇分岐終了◇

WoditorEvCOMMAND_START
[111][7,0]<0>(2,9000012,1,2,9000012,0,2)()
[401][1,0]<0>(1)()
[103][0,1]<1>()("■■■■■■■■■■■■■■■■■■■■ログ取得■■■■■■■■■■■■■■■■■■■■")
[103][0,1]<1>()("メッセージウィンドウに表示されている文字列を取得しCSelf5に格納")
[122][3,0]<1>(1600005,1,9900025)()
[103][0,1]<1>()("取得文字列重複判定を行う")
[112][3,4]<1>(1,286812677,1600007)("","","","")
[401][1,0]<1>(1)()
[103][0,1]<2>()("取得した文字列(CSelf5)がすでに取得している文字列(CSelf7)と違う場合")
[103][0,1]<2>()("ログ保持数に+1")
[121][4,0]<2>(1600002,1,0,256)()
[111][4,0]<2>(1,1600002,16,1)()
[401][1,0]<2>(1)()
[103][0,1]<3>()("■■■■■■■■■■■■■■■■■■■■ログ削除処理■■■■■■■■■■■■■■■■■■■■")
[103][0,1]<3>()("ログの保持数はCSelf2の数値−1 例:条件がログ保持数10以上ならログ保持数は9")
[103][0,1]<3>()("最古のログを1メッセージ分削除する")
[122][2,1]<3>(1600006,2816)("\my[-6]<\n>―――――――――――――――――――――――")
[103][0,1]<3>()("ログ保持数が最大になってメッセージ削除しなくならないようログ保持数に−1する")
[121][4,0]<3>(1600002,1,0,512)()
[0][0,0]<3>()()
[499][0,0]<2>()()
[103][0,1]<2>()("先に表示してある文字列の後ろに改行、区切りライン、改行を挿入する ※下のラインが最初に表示される")
[111][4,0]<2>(17,1600002,1,3)()
[401][1,0]<2>(1)()
[103][0,1]<3>()("1つ目のログ表示は区切りラインを表示しない+文字列表示のズレを補正する")
[122][2,1]<3>(1600006,256)("\my[22]")
[0][0,0]<3>()()
[420][1,0]<2>(0)()
[122][2,1]<3>(1600006,256)("\my[-6]<\n>―――――――――――――――――――――――<\n>")
[0][0,0]<3>()()
[499][0,0]<2>()()
[122][3,0]<2>(1600006,257,1600005)()
[103][0,1]<2>()("取得した文字列を文字列重複確認用CSelf7に格納")
[122][3,0]<2>(1600007,1,1600005)()
[0][0,0]<2>()()
[499][0,0]<1>()()
[103][0,1]<1>()("キーボードのS、またはパッドのR1を押下するとログ画面表示")
[123][3,0]<1>(1600000,4352,131)()
[123][3,0]<1>(1600001,4608,307)()
[111][7,0]<1>(2,1600000,131,2,1600001,307,2)()
[401][1,0]<1>(1)()
[213][0,1]<2>()("キー処理")
[0][0,0]<2>()()
[401][1,0]<1>(2)()
[212][0,1]<2>()("キー処理")
[103][0,1]<2>()("ログ画面表示時に移動しないようキー入力を移動時×にする")
[126][1,0]<2>(496)()
[103][0,1]<2>()("ログ画面で使用しないキー入力を禁止")
[126][1,0]<2>(519)()
[211][2,0]<2>(600100,0)()
[180][1,0]<2>(1)()
[103][0,1]<2>()("ログ表示の時邪魔になる特殊文字を削除する")
[122][2,1]<2>(1600006,2048)("\.")
[122][2,1]<2>(1600006,2048)("\sp")
[122][2,1]<2>(1600006,2048)(" ")
[103][0,1]<2>()("■■■■■■■■■■■■■■■■■■■■ログ初期表示■■■■■■■■■■■■■■■■■■■■")
[103][0,1]<2>()("ログ表示画面背景 表示 不透明度200 ピクチャ100000")
[150][18,1]<2>(48,100000,0,320,240,1,200,0,0,100,0,0,33554432,0,0,0,0,0)("<SQUARE>")
[103][0,1]<2>()("ログ表示 ピクチャ100001")
[150][11,1]<2>(8224,100001,0,1,1,1,255,45,220,100,0)("\f[10]\cself[6]\f[12]")
[103][0,1]<2>()("ログ表示画面上下に黒帯 表示 不透明度255 ピクチャ100002〜100003")
[150][18,1]<2>(48,100002,0,320,16,1,255,0,0,100,0,0,33554432,0,0,0,0,0)("<SQUARE>")
[150][18,1]<2>(8240,100003,0,320,16,1,255,0,240,100,0,0,33554432,0,0,0,0,0)("<SQUARE>")
[103][0,1]<2>()("ログ画面上部中央に「Log」の文字表示 ピクチャ100004")
[150][18,1]<2>(4128,100004,0,1,1,1,255,160,8,100,0,0,33554432,0,0,200,200,200)("Log")
[103][0,1]<2>()("ログ画面下部中央に「↑・↓:ログ移動 ←:最新ログ →:最古ログ S:終了」の文字表示 ピクチャ100005")
[150][18,1]<2>(4128,100005,0,1,1,1,255,160,233,100,0,0,33554432,0,0,200,200,200)("\f[10]↑・↓:ログ移動\mx[16]←:最新ログ\mx[16]→:最古ログ\mx[16]S:終了\f[12]")
[103][0,1]<2>()("ログが表示されているピクチャのY座標をCSelf20に格納")
[124][4,0]<2>(1600020,16384,100001,1)()
[103][0,1]<2>()("ログが表示されているピクチャの画像サイズ(縦)をCSelf21に格納")
[124][4,0]<2>(1600021,16384,100001,3)()
[103][0,1]<2>()("画面上部のメッセージスクロール隠しラインの16ピクセル分CSelf21に加算する")
[121][4,0]<2>(1600021,16,0,256)()
[103][0,1]<2>()("ログを表示しているピクチャのY座標とピクチャ縦サイズの差を計算してCSelf22に格納")
[121][4,0]<2>(1600022,1600020,1600021,4096)()
[99][1,0]<2>(0)()
[111][4,0]<2>(1,1600022,-1,2)()
[401][1,0]<2>(1)()
[103][0,1]<3>()("1行の文字列が9個保持された状態でログを表示するとスクロール不可状態にもかかわらずスクロールしてしまうので、ラベル処理で強引に▲を暗く表示+スクロール不可状態にする")
[121][4,0]<3>(1600023,1,0,0)()
[213][0,1]<3>()("スクロール強制停止1")
[0][0,0]<3>()()
[499][0,0]<2>()()
[111][4,0]<2>(17,1600020,1600021,1)()
[401][1,0]<2>(1)()
[212][0,1]<3>()("スクロール強制停止1")
[103][0,1]<3>()("ログ画面右上に▲表示 ピクチャ100006 不透明度150")
[103][0,1]<3>()("↑キーでスクロール出来るログが無い場合は▲を暗くする")
[150][11,1]<3>(32,100006,0,1,1,1,150,298,20,100,0)("▲")
[0][0,0]<3>()()
[420][1,0]<2>(0)()
[103][0,1]<3>()("ログ画面右上に▲表示 ピクチャ100006 不透明度255")
[103][0,1]<3>()("↑キーでスクロール出来るログがある場合は▲を明るくする")
[150][11,1]<3>(32,100006,0,1,1,1,255,298,20,100,0)("▲")
[0][0,0]<3>()()
[499][0,0]<2>()()
[103][0,1]<2>()("ログ画面右下に▼表示 ピクチャ100007 不透明度150")
[103][0,1]<2>()("ログは左下から上に積み重なるように表示されるのでログ保持数に関係無く▼の初期表示は暗くする")
[150][11,1]<2>(32,100007,0,1,1,1,150,298,210,100,0)("▼")
[103][0,1]<2>()("■■■■■■■■■■■■■■■■■■■■ログ初期表示ここまで■■■■■■■■■■■■■■■■■■■■")
[103][0,1]<2>()(" ")
[103][0,1]<2>()("■■■■■■■■■■■■■■■■■■■■キー処理■■■■■■■■■■■■■■■■■■■■")
[121][4,0]<2>(1600000,0,0,0)()
[121][4,0]<2>(1600001,0,0,0)()
[121][4,0]<2>(1600010,0,0,0)()
[170][0,0]<2>()()
[180][1,0]<3>(1)()
[123][3,0]<3>(1600000,4352,131)()
[123][3,0]<3>(1600001,4608,307)()
[111][7,0]<3>(2,1600000,131,2,1600001,307,2)()
[401][1,0]<3>(1)()
[103][0,1]<4>()("Sキー入力でログ画面の終了")
[213][0,1]<4>()("C")
[0][0,0]<4>()()
[401][1,0]<3>(2)()
[103][0,1]<4>()("R1キー入力でログ画面の終了")
[212][0,1]<4>()("C")
[213][0,1]<4>()("キャンセル")
[0][0,0]<4>()()
[499][0,0]<3>()()
[123][2,0]<3>(1600015,1)()
[121][4,0]<3>(1600016,1,0,512)()
[111][7,0]<3>(2,1600015,0,2,1600017,1,2)()
[401][1,0]<3>(1)()
[121][5,0]<4>(1600016,0,0,65536,1)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[401][1,0]<3>(2)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[499][0,0]<3>()()
[180][1,0]<3>(1)()
[111][7,0]<3>(2,1600015,4,2,1600015,6,2)()
[401][1,0]<3>(1)()
[103][0,1]<4>()("最新のログに移動")
[150][11,0]<4>(8225,100001,0,0,0,1,255,45,220,100,0)()
[103][0,1]<4>()("↓キーでスクロール出来るログが無い場合は▼を暗くする")
[103][0,1]<4>()("ログ画面右下に▼表示 ピクチャ100007 不透明度150")
[150][11,1]<4>(32,100007,0,1,1,1,150,298,210,100,0)("▼")
[124][4,0]<4>(1600024,16384,100001,3)()
[111][4,0]<4>(17,1600024,205,3)()
[401][1,0]<4>(1)()
[103][0,1]<5>()("↑キーでスクロール出来るログがある場合は▲を暗くする")
[103][0,1]<5>()("ログ画面右上に▲表示 ピクチャ100006 不透明度150")
[150][11,1]<5>(32,100006,0,1,1,1,150,298,20,100,0)("▲")
[0][0,0]<5>()()
[420][1,0]<4>(0)()
[103][0,1]<5>()("↑キーでスクロール出来るログがある場合は▲を明るくする")
[103][0,1]<5>()("ログ画面右上に▲表示 ピクチャ100006 不透明度255")
[150][11,1]<5>(32,100006,0,1,1,1,255,298,20,100,0)("▲")
[0][0,0]<5>()()
[499][0,0]<4>()()
[176][0,0]<4>()()
[0][0,0]<4>()()
[401][1,0]<3>(2)()
[124][4,0]<4>(1600020,16384,100001,1)()
[124][4,0]<4>(1600024,16384,100001,3)()
[121][4,0]<4>(1600024,16,0,256)()
[111][7,0]<4>(18,1600020,1600024,2,1600024,222,1)()
[401][1,0]<4>(1)()
[176][0,0]<5>()()
[0][0,0]<5>()()
[401][1,0]<4>(2)()
[103][0,1]<5>()("最古のログに移動")
[150][11,0]<5>(1,100001,0,0,0,1,255,45,1600024,100,0)()
[103][0,1]<5>()("↑キーでスクロール出来るログが無い場合は▲を暗くする")
[103][0,1]<5>()("ログ画面右上に▲表示 ピクチャ100006 不透明度150")
[150][11,1]<5>(32,100006,0,1,1,1,150,298,20,100,0)("▲")
[103][0,1]<5>()("↓キーでスクロール出来るログがある場合は▼を明るくする")
[103][0,1]<5>()("ログ画面右下に▼表示 ピクチャ100007 不透明度255")
[150][11,1]<5>(32,100007,0,1,1,1,255,298,210,100,0)("▼")
[176][0,0]<5>()()
[0][0,0]<5>()()
[420][1,0]<4>(0)()
[176][0,0]<5>()()
[0][0,0]<5>()()
[499][0,0]<4>()()
[0][0,0]<4>()()
[499][0,0]<3>()()
[103][0,1]<3>()("■■■■■■■■■■■■■■■■■■■■ログ操作■■■■■■■■■■■■■■■■■■■■")
[99][1,0]<3>(0)()
[123][2,0]<3>(1600015,1)()
[111][7,0]<3>(2,1600015,2,2,1600015,8,2)()
[401][1,0]<3>(1)()
[103][0,1]<4>()("↓キーを押した場合")
[179][1,0]<4>(10)()
[103][0,1]<5>()("ログが表示されているピクチャのY座標をCSelf20に格納")
[124][4,0]<5>(1600020,16384,100001,1)()
[103][0,1]<5>()("ログ表示ピクチャのY座標が220(初期表示位置)か判定")
[111][4,0]<5>(17,1600020,220,2)()
[401][1,0]<5>(1)()
[103][0,1]<6>()("ログの下限に達している場合はスクロール停止")
[103][0,1]<6>()("↓キーでスクロール出来るログが無い場合は▼を暗くする")
[103][0,1]<6>()("ログ画面右下に▼表示 ピクチャ100007 不透明度150")
[150][11,1]<6>(32,100007,0,1,1,1,150,298,210,100,0)("▼")
[171][0,0]<6>()()
[0][0,0]<6>()()
[420][1,0]<5>(0)()
[103][0,1]<6>()("新しいログにスクロールさせる(古いログは画面上に移動していく)")
[150][13,0]<6>(4263681,100001,0,0,0,1,-1000000,0,-1,-1000000,-1000000,0,16777216)()
[124][4,0]<6>(1600020,16384,100001,1)()
[111][4,0]<6>(1,1600020,220,2)()
[401][1,0]<6>(1)()
[103][0,1]<7>()("ログをスクロールさせてログ下限に達したら▼を暗くする")
[103][0,1]<7>()("ログ画面右下に▼表示 ピクチャ100007 不透明度150")
[150][11,1]<7>(32,100007,0,1,1,1,150,298,210,100,0)("▼")
[0][0,0]<7>()()
[499][0,0]<6>()()
[0][0,0]<6>()()
[499][0,0]<5>()()
[179][1,0]<5>(10)()
[103][0,1]<6>()("ログが表示されているピクチャのY座標をCSelf20に格納")
[124][4,0]<6>(1600020,16384,100001,1)()
[103][0,1]<6>()("ログが表示されているピクチャの画像サイズ(縦)をCSelf21に格納")
[124][4,0]<6>(1600021,16384,100001,3)()
[103][0,1]<6>()("画面上部のメッセージスクロール隠しラインの16ピクセル分CSelf21に加算する")
[121][4,0]<6>(1600021,16,0,256)()
[111][4,0]<6>(17,1600020,1600021,3)()
[401][1,0]<6>(1)()
[103][0,1]<7>()("↑キーでスクロール出来るログがある場合は▲を明るくする")
[103][0,1]<7>()("ログ画面右上に▲表示 ピクチャ100006 不透明度255")
[150][11,1]<7>(32,100006,0,1,1,1,255,298,20,100,0)("▲")
[171][0,0]<7>()()
[0][0,0]<7>()()
[420][1,0]<6>(0)()
[0][0,0]<7>()()
[499][0,0]<6>()()
[0][0,0]<6>()()
[498][0,0]<5>()()
[0][0,0]<5>()()
[498][0,0]<4>()()
[180][1,0]<4>(1)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[401][1,0]<3>(2)()
[99][1,0]<4>(0)()
[99][1,0]<4>(1)()
[103][0,1]<4>()("↑キーを押した場合")
[111][4,0]<4>(1,1600023,1,2)()
[401][1,0]<4>(1)()
[99][1,0]<5>(0)()
[103][0,1]<5>()("1行の文字列が9個保持された状態でログを表示するとスクロール不可状態にならずスクロールしてしまうので、ラベル処理で強引に▲を暗く表示+スクロール不可状態にする")
[103][0,1]<5>()("■1行文字列が9個の状況はレアケースと思われるが予防的処理■")
[213][0,1]<5>()("スクロール強制停止2")
[0][0,0]<5>()()
[499][0,0]<4>()()
[179][1,0]<4>(10)()
[103][0,1]<5>()("ログが表示されているピクチャのY座標をCSelf20に格納")
[124][4,0]<5>(1600020,16384,100001,1)()
[124][4,0]<5>(1600021,16384,100001,3)()
[111][7,0]<5>(2,1600021,205,3,1600020,220,2)()
[401][1,0]<5>(1)()
[103][0,1]<6>()("ログをスクロール出来ない場合は▼を暗くする")
[103][0,1]<6>()("ログ画面右下に▼表示 ピクチャ100007 不透明度150")
[150][11,1]<6>(32,100007,0,1,1,1,150,298,210,100,0)("▼")
[171][0,0]<6>()()
[0][0,0]<6>()()
[401][1,0]<5>(2)()
[103][0,1]<6>()("↓キーでスクロール出来るログがある場合は▼を明るくする")
[103][0,1]<6>()("ログ画面右下に▼表示 ピクチャ100007 不透明度255")
[150][11,1]<6>(32,100007,0,1,1,1,255,298,210,100,0)("▼")
[171][0,0]<6>()()
[0][0,0]<6>()()
[499][0,0]<5>()()
[0][0,0]<5>()()
[498][0,0]<4>()()
[179][1,0]<4>(10)()
[103][0,1]<5>()("ログが表示されているピクチャのY座標をCSelf20に格納")
[124][4,0]<5>(1600020,16384,100001,1)()
[103][0,1]<5>()("ログが表示されているピクチャの画像サイズ(縦)をCSelf21に格納")
[124][4,0]<5>(1600021,16384,100001,3)()
[103][0,1]<5>()("画面上部のメッセージスクロール隠しラインの16ピクセル分CSelf21に加算する")
[121][4,0]<5>(1600021,16,0,256)()
[111][4,0]<5>(17,1600020,1600021,1)()
[401][1,0]<5>(1)()
[212][0,1]<6>()("スクロール強制停止2")
[103][0,1]<6>()("ログの上限に達している場合はスクロール停止")
[103][0,1]<6>()("↑キーでスクロール出来るログが無い場合は▲を暗くする")
[103][0,1]<6>()("ログ画面右上に▲表示 ピクチャ100006 不透明度150")
[150][11,1]<6>(32,100006,0,1,1,1,150,298,20,100,0)("▲")
[171][0,0]<6>()()
[0][0,0]<6>()()
[420][1,0]<5>(0)()
[103][0,1]<6>()("古いログにスクロールさせる(新しいログは画面下に移動していく)")
[150][13,0]<6>(4263681,100001,0,0,0,1,-1000000,0,1,-1000000,-1000000,0,16777216)()
[103][0,1]<6>()("ログが表示されているピクチャのY座標をCSelf20に格納")
[124][4,0]<6>(1600020,16384,100001,1)()
[103][0,1]<6>()("ログが表示されているピクチャの画像サイズ(縦)をCSelf21に格納")
[124][4,0]<6>(1600021,16384,100001,3)()
[103][0,1]<6>()("画面上部のメッセージスクロール隠しラインの16ピクセル分CSelf21に加算する")
[121][4,0]<6>(1600021,16,0,256)()
[111][4,0]<6>(1,1600020,1600021,1)()
[401][1,0]<6>(1)()
[103][0,1]<7>()("ログをスクロールさせてログ上限に達したら▲を暗くする")
[103][0,1]<7>()("ログ画面右上に▲表示 ピクチャ100006 不透明度150")
[150][11,1]<7>(32,100006,0,1,1,1,150,298,20,100,0)("▲")
[0][0,0]<7>()()
[499][0,0]<6>()()
[0][0,0]<6>()()
[499][0,0]<5>()()
[0][0,0]<5>()()
[498][0,0]<4>()()
[180][1,0]<4>(1)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[499][0,0]<3>()()
[111][4,0]<3>(1,1600016,1,1)()
[401][1,0]<3>(1)()
[176][0,0]<4>()()
[0][0,0]<4>()()
[499][0,0]<3>()()
[0][0,0]<3>()()
[498][0,0]<2>()()
[103][0,1]<2>()("■■■■■■■■■■■■■■■■■■■■終了処理■■■■■■■■■■■■■■■■■■■■")
[212][0,1]<2>()("キャンセル")
[103][0,1]<2>()("ログ画面で使用したピクチャ消去 ピクチャ100001〜100007")
[150][6,0]<2>(16777218,100000,0,0,0,100007)()
[103][0,1]<2>()("全てのキー入力を許可")
[126][1,0]<2>(247)()
[150][3,0]<2>(34,100010,0)()
[103][0,1]<2>()("強引に▲を暗く表示+スクロール不可フラグを消す")
[121][4,0]<2>(1600023,0,0,0)()
[180][1,0]<2>(1)()
[0][0,0]<2>()()
[499][0,0]<1>()()
[0][0,0]<1>()()
[401][1,0]<0>(2)()
[103][0,1]<1>()("メッセージが表示されていない場合は何もしない")
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END


記事No: 21725 [関連記事]
タイトルRe: バックログ画面の表示、非表示について
投稿日: 2025/06/20 22:19
投稿者YADO [LerLWW459]

新押しを自作する場合は、キーを押したかどうかを判定する変数を準備し、
変数の値が「0」=キーを押したらイベント実行(キーを押したら変数の値を「1」にする)
変数の値が「1」=キーを押してもイベントが実行しない。(キーを押していない場合は変数の値を「0」にする)
と言った処理を設定する必要があります。

例えばセルフ変数[30]で「0=キー押し可能」「1=キー押し不可」とする場合は、まず39行目と109行目にある
■条件分岐(変数): 【1】 CSelf0[キーボード判定] が 131 と同じ 【2】 CSelf1[パッド判定] が 307 と同じ
の条件分岐に「上記以外の場合」を追加し、以下のように設定。
|-◇上記以外
|■変数操作: CSelf30[キー押した] = 0 + 0
|■
◇分岐終了◇

44行目にある
●ラベル地点「キー処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
の下(45行目)に以下の設定を追加。
■条件分岐(変数): 【1】 CSelf30[キー押した] が 1 と同じ
-◇分岐: 【1】 [ CSelf30[キー押した] が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: CSelf30[キー押した] = 1 + 0

123行目にある
●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
の部分を以下のように変更。
■条件分岐(変数): 【1】 CSelf30[キー押した] が 0 と同じ
-◇分岐: 【1】 [ CSelf30[キー押した] が 0 と同じ ]の場合↓
|■変数操作: CSelf30[キー押した] = 1 + 0
|●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇

これで自作の新押し処理が完成します。


記事No: 21727 [関連記事]
タイトルRe: バックログ画面の表示、非表示について
投稿日: 2025/06/22 00:27
投稿者ひろ [FrrdLrFW791]

返信ありがとうございます。

質問を投稿してから試行錯誤した結果、Sキーを押して画面の表示、非表示は上手くいった感じでしたが、R1キーの方が上手くいかず難儀していた所に解答を提示していただき本当にありがとうございます。

ご提示いただきました修正点をコモンに組み込んでテストしましたら、無事に問題が解決しました。

YADOさんの知見に感謝申し上げます。
本当にありがとうございました!