質問スレッド
このフォームからは投稿できません。
name
e-mail
url
subject
comment

[もどる] [新規投稿] [新規順タイトル表示] [ツリー表示] [新着順記事] [留意事項] [ワード検索] [過去ログ] [管理用]
  • 以下は新規投稿順のリスト(投稿記事)表示です。

  • 【質問フォーム】
    【重要!】 質問する前に必ず、過去に同じ質問がないか検索してください!

    検索ワード:条件: 表示:
    質問スレッドまとめも一通り覗いてみてください。

    もし以下のケースで困った場合は、まずリンク先の文書内に答えがないか探してください。

    ・まずはこの中からお探し下さい → パーフェクトガイド
    ・バグかな?と思ったときは → よくある質問
    ・基本システムの設定方法が分からない場合 → 基本システム講座(by 藤田るいふ氏)
    ・イベントコマンドなどの仕様が分からない場合 → 公式マニュアル

    ※書き込む前に少なくとも1日2日は、自分で探したり挑戦する努力をしてみてください。

    上記のことを全部やってもどうしても分からなかった場合だけ、以下のフォームから質問してください。
      

    おなまえ※必須
    Eメール
    subject 入力禁止
    Title 入力禁止
    Theme 入力禁止
    タイトル (質問内容に沿ったタイトルにしてください、「わかりません」「質問です」はダメ)
    URL 入力禁止
    URL
    【質問内容】
    手動改行 強制改行 図表モード
    添付ファイル    (500kBまで)
    削除キー (英数字で8文字以内)
    投稿キー (投稿時 投稿キー を入力してください)
    プレビュー   


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

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

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

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

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


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

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


    記事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: 21719 [関連記事]
    タイトルRe: 万能ウィンドウのキー1回分だけ処理に関して
    投稿日: 2025/05/23 23:20
    投稿者たかくら [rOOeidrWi323]

    無事に画面サイズの調節等も終わりました!
    ご回答いただきありがとうございました!


    記事No: 21718 [関連記事]
    タイトルRe: 万能ウィンドウのキー1回分だけ処理に関して
    投稿日: 2025/05/22 01:40
    投稿者たかくら [reWrdWpr329]

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

    頂いた返信を見ながら一行ずつ自分で入力してみたところ、どこかを間違えてしまいおかしなものが出来上がってしまいましたが、回答後半のコード(※WoditorEvCOMMAND_START以降の文)を張り付けて使用してみた所、意図した動作になっているので、
    明日再チャレンジして、正常に動いたら敵グループ内容欄のウィンドウサイズ等を自分が製作中のゲーム画面のサイズに調節してみます。


    7回ループの中の文字列操作を+=と改行コード付きで入れるとピクチャを複数枚使わずとも敵1〜7までの情報を入れる事が出来るなど、今の自分には全く考え付かないスマートな処理で、こんなに短い指定で実装出来るんだ!!、しかもセルフ変数の数も凄く少ない!!!と驚きでした。

    出来次第ご報告、或いは躓いたら再度質問いたします。


    記事No: 21717 [関連記事]
    タイトルRe: 万能ウィンドウのキー1回分だけ処理に関して
    投稿日: 2025/05/21 22:41
    投稿者YADO [LerLWW459]

    > [やりたいこと]
    > hhttps://silka-blog.com/w-editor/battletest1
    > hhttps://silka-blog.com/w-editor/battletest2
    > こちらのサイトを参考に万能ウィンドウで敵グループリストから敵と戦う戦闘テストコモンを作りました。
    > この戦闘テストコモンのリストの隣にウィンドウを表示させて、
    > リストをカーソルを移動させる度に別ウィンドウに敵グループのモンスター名を表示させる機能を追加したい。
    >
    > 敵1 スライム
    > 敵2 オオカミ
    > 敵3 オオカミ
    > 敵4 
    > 敵5
    > 敵6
    > 敵7
    >
    > といった風に。
    > 敵が登録されていない所は空白にしたいです。
    >
    >
    > [やってみたこと]
    > ウルファールGPTに相談、グーグル検索、
    > http://yado.tk/wolf/
    > こちらのサイトの万能ウィンドウ関連を読む。
    >
    > [やってみた結果、どううまくいかないか]
    > モンスター名の表示は出来たが、最初に開いた段階ではモンスター名が表示されておらず、一度カーソル移動をしないと表示されない。
    > カーソル移動をする度に敵グループリストと説明欄が開閉し直す状態になっていて煩い。
    >
    > 万能ウィンドウ選択実行や描画処理、モンスター名取得と表示の適切な処理や順序が分からずラベルジャンプで無理やり処理させています……。
    >
    >
    > 添付画像は戦闘テストコモンから改変した箇所のスクショです。
    > どなたかご教授頂けると幸いです。
    > また、初心者故に自分で追記した箇所の処理が非常に非効率になっている気もしますので、もっとスマートに処理できるのであれば、そこも教えて頂けると嬉しいです。

    万能ウィンドウのキー処理の後に敵キャラの名前を表示する処理を置けば、
    当然ながら万能ウィンドウのキー処理を1回実行しないと敵キャラの名前は表示されないでしょう。

    またキー処理のすぐ下に消去する処理をおけば、キーを押すごとに消去と表示が繰り返されるでしょう。

    以下の設定例を参考にしてみてください。

    ■DB書込(可変):可変DB[ 基本システム用変数:9:0 ] (18:万能ウィンドウ表示X:数値) = 0
    ■DB書込(可変):可変DB[ 基本システム用変数:10:0 ] (18:万能ウィンドウ表示Y:数値) = 0
    ■DB書込(可変):可変DB[ 基本システム用変数:11:0 ] (18:万能ウィンドウ横サイズ:数値) = 150
    ■DB書込(可変):可変DB[ 基本システム用変数:12:0 ] (18:万能ウィンドウ縦サイズ:数値) = Sys117:[読]画面サイズY
    ■DB書込(可変):可変DB[ 基本システム用変数:13:0 ] (18:万能ウィンドウ横項目数:数値) = 1
    ■DB書込(可変):可変DB[ 基本システム用変数:14:0 ] (18:万能ウィンドウ縦項目数:数値) = 15
    ■DB読込(ユーザ): CSelf10[総数] = ユーザDB[タイプ13(敵グループ)のデータ数]
    ■DB書込(可変):可変DB[ 基本システム用変数:万能ウィンドウ項目個数:0 ] (18:17:数値) = CSelf10[総数]
    ■DB書込:可変DB [タイプ 19(万能ウィンドウ一時DB) を初期化]
    ■変数操作: CSelf11[ID] = -1 + 0
    ■回数付きループ [ CSelf10[総数] ]回
    |■変数操作: CSelf11[ID] += 1 + 0
    |■DB読込(ユーザ): CSelf5 = ユーザDB[タイプ13(敵グループ) データCSelf11[ID](-)のデータ名]
    |■DB書込(可変):可変DB[ 19:CSelf11[ID]:0 ] (万能ウィンドウ一時DB:-:項目文) = CSelf5
    |■DB書込(可変):可変DB[ 19:CSelf11[ID]:1 ] (万能ウィンドウ一時DB:-:項目コード) = CSelf11[ID]
    |■DB書込(可変):可変DB[ 19:CSelf11[ID]:2 ] (万能ウィンドウ一時DB:-:選択可能状態[1=可]) = 1
    |■
    ◇ループここまで◇◇
    ■DB書込(可変):可変DB[ 18:万能ウィンドウ カーソル位置コード:0 ] (基本システム用変数:18:数値) = 0
    ■イベントの挿入[名]: ["X[共]万能ウィンドウ描画処理"] <コモンEv 64> / 0:表示 / -1 / 0:表示しない / 1:左上から展開
    ■ピクチャ表示:20000 [左上]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[150,104] X:150 Y:0 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
    ■ループ開始
    |■DB読込(可変): CSelf12[敵グループ] = 可変DB[ 18:18:0 ] (基本システム用変数:万能ウィンドウ カーソル位置コード:数値)
    |■変数操作: CSelf11[ID] = 0 + 0
    |■文字列操作:CSelf5 = ""
    |■回数付きループ [ 7 ]回
    | |■DB読込(ユーザ): CSelf13[敵ID] = ユーザDB[ 13:CSelf12[敵グループ]:CSelf11[ID] ] (敵グループ:-:-)
    | |■変数操作: CSelf11[ID] += 1 + 0
    | |■条件分岐(変数): 【1】 CSelf13[敵ID] が -1 以下
    | |-◇分岐: 【1】 [ CSelf13[敵ID] が -1 以下 ]の場合↓
    | | |■文字列操作:CSelf5 += "敵\cself[11]:\n"
    | | |■
    | |-◇上記以外
    | | |■文字列操作:CSelf5 += "敵\cself[11]:\udb[9:\cself[13]:0]\n"
    | | |■
    | |◇分岐終了◇
    | |■
    |◇ループここまで◇◇
    |■ピクチャ表示:20001 [左上]文字列[\f[\cdb[18:5:0]]] X:157 Y:8 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
    |■イベントの挿入[名]: CSelf14[万能キー内容] = ["X[共]万能ウィンドウ選択実行"] <コモンEv 65> / 1:キー1回分だけ処理 / 0:決定音を鳴らす
    |■条件分岐(変数): 【1】 CSelf14[万能キー内容] が -200 と同じ
    |-◇分岐: 【1】 [ CSelf14[万能キー内容] が -200 と同じ ]の場合↓
    | |■ループ開始へ戻る
    | |■
    |◇分岐終了◇
    |■ループ中断
    |■
    ◇ループここまで◇◇
    ■ピクチャ消去:20000 〜 20001 / 5(0)フレーム
    ■イベントの挿入[名]: ["X[共]万能ウィンドウ描画処理"] <コモンEv 64> / -1:消去 / -1 / 0:表示しない / 1:左上から展開
    ■条件分岐(変数): 【1】 CSelf14[万能キー内容] が 0 以上
    -◇分岐: 【1】 [ CSelf14[万能キー内容] が 0 以上 ]の場合↓
    |■イベントの挿入[名]: ["◆バトルの発生"] <コモンEv 28> / CSelf14[万能キー内容] / 0:逃走可能 / 0:ゲームオーバーEvへ / 0:タウン
    |■
    ◇分岐終了◇


    WoditorEvCOMMAND_START
    [250][5,4]<0>(18,9,0,65536,0)("","基本システム用変数","","")
    [250][5,4]<0>(18,10,0,65536,0)("","基本システム用変数","","")
    [250][5,4]<0>(18,11,0,65536,150)("","基本システム用変数","","")
    [250][5,4]<0>(18,12,0,65536,9000117)("","基本システム用変数","","")
    [250][5,4]<0>(18,13,0,65536,1)("","基本システム用変数","","")
    [250][5,4]<0>(18,14,0,65536,15)("","基本システム用変数","","")
    [250][5,4]<0>(13,-1,0,4608,1600010)("","","","")
    [250][5,4]<0>(18,17,0,196608,1600010)("","基本システム用変数","万能ウィンドウ項目個数","")
    [250][5,4]<0>(19,-2,0,0,0)("","","","")
    [121][4,0]<0>(1600011,-1,0,0)()
    [179][1,0]<0>(1600010)()
    [121][4,0]<1>(1600011,1,0,256)()
    [250][5,4]<1>(13,1600011,-3,4608,1600005)("","","","")
    [250][5,4]<1>(19,1600011,0,0,1600005)("","","","")
    [250][5,4]<1>(19,1600011,1,0,1600011)("","","","")
    [250][5,4]<1>(19,1600011,2,0,1)("","","","")
    [0][0,0]<1>()()
    [498][0,0]<0>()()
    [250][5,4]<0>(18,0,0,131072,0)("","","万能ウィンドウ カーソル位置コード","")
    [300][6,1]<0>(0,4,0,-1,0,1)("X[共]万能ウィンドウ描画処理")
    [150][11,1]<0>(48,20000,0,150,104,1,255,150,0,100,0)("SystemFile/WindowBase_amania.png")
    [170][0,0]<0>()()
    [250][5,4]<1>(18,18,0,4096,1600012)("","","","")
    [121][4,0]<1>(1600011,0,0,0)()
    [122][3,1]<1>(1600005,0,0)("")
    [179][1,0]<1>(7)()
    [250][5,4]<2>(13,1600012,1600011,4608,1600013)("","","","")
    [121][4,0]<2>(1600011,1,0,256)()
    [111][4,0]<2>(17,1600013,-1,3)()
    [401][1,0]<2>(1)()
    [122][3,1]<3>(1600005,256,0)("敵\cself[11]:<\n>")
    [0][0,0]<3>()()
    [420][1,0]<2>(0)()
    [122][3,1]<3>(1600005,256,0)("敵\cself[11]:\udb[9:\cself[13]:0]<\n>")
    [0][0,0]<3>()()
    [499][0,0]<2>()()
    [0][0,0]<2>()()
    [498][0,0]<1>()()
    [150][11,1]<1>(32,20001,0,1,1,1,255,157,8,100,0)("\f[\cdb[18:5:0]]\cself[5]")
    [300][5,1]<1>(0,16777218,1,0,1600014)("X[共]万能ウィンドウ選択実行")
    [111][4,0]<1>(1,1600014,-200,2)()
    [401][1,0]<1>(1)()
    [176][0,0]<2>()()
    [0][0,0]<2>()()
    [499][0,0]<1>()()
    [171][0,0]<1>()()
    [0][0,0]<1>()()
    [498][0,0]<0>()()
    [150][6,0]<0>(16777218,20000,5,0,0,20001)()
    [300][6,1]<0>(0,4,-1,-1,0,1)("X[共]万能ウィンドウ描画処理")
    [111][4,0]<0>(1,1600014,0,1)()
    [401][1,0]<0>(1)()
    [300][6,1]<1>(0,4,1600014,0,0,0)("◆バトルの発生")
    [0][0,0]<1>()()
    [499][0,0]<0>()()
    WoditorEvCOMMAND_END


    記事No: 21716 [関連記事]
    タイトル万能ウィンドウのキー1回分だけ処理に関して
    投稿日: 2025/05/21 00:56
    投稿者たかくら [rOOeidrLd252]

    万能ウィンドウのキー1回分だけ処理に関して (画像サイズ: 1160×874 142kB)

    [やりたいこと]
    hhttps://silka-blog.com/w-editor/battletest1
    hhttps://silka-blog.com/w-editor/battletest2
    こちらのサイトを参考に万能ウィンドウで敵グループリストから敵と戦う戦闘テストコモンを作りました。
    この戦闘テストコモンのリストの隣にウィンドウを表示させて、
    リストをカーソルを移動させる度に別ウィンドウに敵グループのモンスター名を表示させる機能を追加したい。

    敵1 スライム
    敵2 オオカミ
    敵3 オオカミ
    敵4 
    敵5
    敵6
    敵7

    といった風に。
    敵が登録されていない所は空白にしたいです。


    [やってみたこと]
    ウルファールGPTに相談、グーグル検索、
    http://yado.tk/wolf/
    こちらのサイトの万能ウィンドウ関連を読む。

    [やってみた結果、どううまくいかないか]
    モンスター名の表示は出来たが、最初に開いた段階ではモンスター名が表示されておらず、一度カーソル移動をしないと表示されない。
    カーソル移動をする度に敵グループリストと説明欄が開閉し直す状態になっていて煩い。

    万能ウィンドウ選択実行や描画処理、モンスター名取得と表示の適切な処理や順序が分からずラベルジャンプで無理やり処理させています……。


    添付画像は戦闘テストコモンから改変した箇所のスクショです。
    どなたかご教授頂けると幸いです。
    また、初心者故に自分で追記した箇所の処理が非常に非効率になっている気もしますので、もっとスマートに処理できるのであれば、そこも教えて頂けると嬉しいです。


    記事No: 21715 [関連記事]
    タイトルRe: 並列処理からバトルの発生コモンを呼び出す必要がある場合、主人公の移動やメニューオープンを禁止する方法
    投稿日: 2025/04/19 22:03
    投稿者S [FreiOeeW847]

    おかげさまで問題解決しました!
    的確かつ迅速なお返事誠にありがとうございました。


    記事No: 21714 [関連記事]
    タイトルRe: 並列処理からバトルの発生コモンを呼び出す必要がある場合、主人公の移動やメニューオープンを禁止する方法
    投稿日: 2025/04/19 19:23
    投稿者S [FreiOeeW847]

    早速のお返事ありがとうございます!
    (もしかするとYADOT-WOLFの管理人さんでしょうか?でしたらいつも大変お世話になっております。違えばすみません…)
    いただいた内容元に組み替えてみます。うまくいきましたらまたご連絡させていただきます。


    | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |


    - 以下のフォームから自分の投稿記事を修正・削除することができます -
    処理 記事No 削除キー

    - Web Forum Antispam Version -