WOLF RPGエディター(ウディタ)/自作メニュー【サイトトップへ戻る】
■回転型の自作メニューをカーソルで操作
(更新:2024/05/13)


回転型の自作メニューの項目をカーソルで選択する処理を設定します。



回転型の自作メニューの基礎ページをご覧頂いていない場合は、先にご覧ください。
【回転型の自作メニューの基礎ページを開く】

ショートカット
■処理内容の確認
■セルフ変数の一覧
■基本イベントの設定

動作見本用のサンプルデータ
ダウンロード後に右クリック→[すべて展開]で解凍し、
中に入っている「★このデータについて」をご覧ください。


  
■処理内容の確認

回転型の自作メニューの基礎ページでは、項目の表示を回転させて項目を選択していましたが、
当ページの処理では項目の表示は移動せず、項目を選択するカーソルを移動させて項目を選択します。

▼[B]を選択した時の比較
基礎ページ 当ページ



カーソルはピクチャ番号[10]で表示し、右キーで時計回り、左キーで反時計回りに移動します。

カーソルの表示位置は、項目を表示しているピクチャの表示位置を取得して、項目と同じ位置にカーソルを表示します。



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


▲トップへ戻る▲


  
■セルフ変数の一覧表

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

セルフ変数
番号 名前 使用内容
10 キー 押されたキー番号を取得。
11 キー待ち時間 左右キーを押し続けた時に、次の項目へ移動するまでの時間を設定。
設定値は「16」で、決定キーの場合は「999999」。
メニューを開いた瞬間に決定キーを押してすぐに項目を決定しないようにするため、
初期設定では「999999」を設定。
12 決定予約 初期設定では「1」を設定し、決定キーが押されると「2」が設定されます。
回転途中で決定キーを押しても「2」になります。
そして回転途中で「2」になると、
回転の処理が終わったあとに項目の決定が実行されます。
このように回転途中で決定を受け付ける事で、
回転し終わる直前に決定キーを押してもちゃんと決定を受け付けるようになり、
プレイヤーの操作がスムーズに行えます。
なお、決定キーを押して「2」になった場合は、回転速度が2倍になります。
17 選択中項目 選択中の項目番号を設定。
初期設定では「0」になっていますが、
初期設定を「2」にすると項目[2(C)]が最初の選択項目になります。
20 項目総数 項目の総数を設定。
21 円の中心X 回転の中心X位置を設定。
初期設定は画面の中央。
22 円の中心Y 回転の中心Y位置を設定。
初期設定は画面の中央。
23 円の半径 円の中心から項目表示の中心までの距離を設定。
初期設定は「30」。
24 回転速度 回転速度を設定。
初期設定は「8」であり、数値が小さくなると回転速度が速くなります。
設定値は「2以上」で設定。
25 基本ピクチャ番号 今回の処理で使用するピクチャ番号の最小値を設定。
初期設定は「100」。
30 目標の角度 項目[0](A)が移動完了を目標とする角度を設定。
31 現在の角度 項目[0](A)の現在の角度を設定。
セルフ変数[30:目標の角度]の角度とは異なる場合は、
回転移動してセルフ変数[30:目標の角度]の角度に合わせます。
32 目標と現在の差 セルフ変数[30:目標の角度]セルフ変数[31:現在の角度]の値の差を設定。
33 増減角度計算 1フレームで移動する角度を計算。
「下限15」を設定し、1フレームで最低でも角度「15」は進むように設定。
40 処理済数 項目の表示処理が終わった数を設定。
41 表示ピクチャ番号 項目の表示処理を行うピクチャ番号を設定。
42 表示角度 中心から見た項目の表示角度を設定。
43 表示位置X 項目の表示位置Xを設定。
44 表示位置Y 項目の表示位置Yを設定。
53 表示サイズX 項目の最大の横幅を取得 → [加算4]を設定し、カーソルの横サイズにする。
54 表示サイズY 項目の最大の縦幅を取得 → [加算4]を設定し、カーソルの縦サイズにする。

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


▲トップへ戻る▲


  
■基本イベントの設定

コモンイベントに以下のイベントを設定してください。



今回の処理では項目[0(A)]常に角度「0」であるため、
基礎ページにあった「項目[0]の角度を設定」の処理は削除しています。



左右キーを押した時のセルフ変数[17:選択中項目]の値の変化は、
基礎ページでは「左キー:加算1」「右キー:減算1」でしたが、
当ページでは「左キー:減算1」「右キー:加算1」にしています。



▼ピクチャ[10]:カーソル画像




この色の設定は、イベントの追加・修正を行った設定になります。
この色の設定は、基礎ページの設定を削除した部分になります。
この色の設定は、基礎ページと同じ設定の部分です。

【イベントコード表示】

▼ ■■■■■■■■■■初期設定
■変数操作: CSelf11[キー待ち時間] = 999999 + 0
■変数操作: CSelf12[決定予約] = 1 + 0
■変数操作: CSelf17[選択中項目] = 0 + 0
■変数操作: CSelf20[項目総数] = 6 + 0
■変数操作: CSelf21[円の中心X] = Sys116:[読]画面サイズX / 2
■変数操作: CSelf22[円の中心Y] = Sys117:[読]画面サイズY / 2
■変数操作: CSelf23[円の半径] = 30 + 0
■変数操作: CSelf24[回転速度] = 8 + 0
■変数操作: CSelf25[基本ピクチャ番号] = 100 + 0
■変数操作: CSelf31[現在の角度] = 3600 * CSelf17[選択中項目]
■変数操作: CSelf31[現在の角度] /= CSelf20[項目総数] + 0

▼ ■■■■■■■■■■ピクチャ表示
■変数操作: CSelf41[表示ピクチャ番号] = CSelf25[基本ピクチャ番号] + 0
■ピクチャ表示:CSelf41[表示ピクチャ番号] [中心]文字列[A] X:CSelf21[円の中心X] Y:CSelf22[円の中心Y] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf41[表示ピクチャ番号] += 1 + 0
■ピクチャ表示:CSelf41[表示ピクチャ番号] [中心]文字列[B] X:CSelf21[円の中心X] Y:CSelf22[円の中心Y] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf41[表示ピクチャ番号] += 1 + 0
■ピクチャ表示:CSelf41[表示ピクチャ番号] [中心]文字列[C] X:CSelf21[円の中心X] Y:CSelf22[円の中心Y] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf41[表示ピクチャ番号] += 1 + 0
■ピクチャ表示:CSelf41[表示ピクチャ番号] [中心]文字列[D] X:CSelf21[円の中心X] Y:CSelf22[円の中心Y] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf41[表示ピクチャ番号] += 1 + 0
■ピクチャ表示:CSelf41[表示ピクチャ番号] [中心]文字列[E] X:CSelf21[円の中心X] Y:CSelf22[円の中心Y] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■変数操作: CSelf41[表示ピクチャ番号] += 1 + 0
■ピクチャ表示:CSelf41[表示ピクチャ番号] [中心]文字列[F] X:CSelf21[円の中心X] Y:CSelf22[円の中心Y] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
▼ ■■■■■■■■■■項目[0]の角度を設定
●ラベル地点「角度設定」 <<<<<<<<<<<<<<<<<<<<<<<<★
■変数操作: CSelf31[現在の角度] %= 3600 + 0
■変数操作: CSelf30[目標の角度] = 3600 * CSelf17[選択中項目]
■変数操作: CSelf30[目標の角度] /= CSelf20[項目総数] + 0
■変数操作: CSelf32[目標と現在の差] = CSelf30[目標の角度] - CSelf31[現在の角度]
■変数操作: CSelf32[目標と現在の差] += 3600 + 0
■変数操作: CSelf32[目標と現在の差] %= 3600 + 0
■条件分岐(変数): 【1】 CSelf32[目標と現在の差] が 1800 超
         【2】 CSelf32[目標と現在の差] が 1 以上
-◇分岐: 【1】 [ CSelf32[目標と現在の差] が 1800 超 ]の場合↓
|■変数操作: CSelf33[増減角度計算] = 3600 - CSelf32[目標と現在の差]
|■変数操作: CSelf33[増減角度計算] /= CSelf24[回転速度] / CSelf12[決定予約]
|■変数操作: CSelf33[増減角度計算] 下限= 15 + 0
|■変数操作: CSelf31[現在の角度] -= CSelf33[増減角度計算] + 0
|■変数操作: CSelf32[目標と現在の差] += CSelf33[増減角度計算] + 0
|■条件分岐(変数): 【1】 CSelf32[目標と現在の差] が 3600 以上
|-◇分岐: 【1】 [ CSelf32[目標と現在の差] が 3600 以上 ]の場合↓
||■変数操作: CSelf31[現在の角度] = CSelf30[目標の角度] + 0
||■
|◇分岐終了◇
|■
-◇分岐: 【2】 [ CSelf32[目標と現在の差] が 1 以上 ]の場合↓
|■変数操作: CSelf33[増減角度計算] = CSelf32[目標と現在の差] + 0
|■変数操作: CSelf33[増減角度計算] /= CSelf24[回転速度] / CSelf12[決定予約]
|■変数操作: CSelf33[増減角度計算] 下限= 15 + 0
|■変数操作: CSelf31[現在の角度] += CSelf33[増減角度計算] + 0
|■変数操作: CSelf32[目標と現在の差] -= CSelf33[増減角度計算] + 0
|■条件分岐(変数): 【1】 CSelf32[目標と現在の差] が 0 以下
|-◇分岐: 【1】 [ CSelf32[目標と現在の差] が 0 以下 ]の場合↓
||■変数操作: CSelf31[現在の角度] = CSelf30[目標の角度] + 0
||■
|◇分岐終了◇
|■
◇分岐終了◇

▼ ■■■■■■■■■■表示処理
■変数操作: CSelf40[処理済数] = 0 + 0
■変数操作: CSelf41[表示ピクチャ番号] = CSelf25[基本ピクチャ番号] + 0
■回数付きループ [ CSelf20[項目総数] ]回
|■変数操作: CSelf42[表示角度] = 3600 * CSelf40[処理済数]
|■変数操作: CSelf42[表示角度] /= CSelf20[項目総数] + 0
|■変数操作: CSelf42[表示角度] += 2700 + 0
|■変数操作: CSelf43[表示位置X] = cos[x1000]←角度[x10] = CSelf42[表示角度] - CSelf31[現在の角度]
|■変数操作: CSelf44[表示位置Y] = sin[x1000]←角度[x10] = CSelf42[表示角度] - CSelf31[現在の角度]
|■変数操作: CSelf43[表示位置X]〜CSelf44[表示位置Y] 下限= -999 + 0
|■変数操作: CSelf43[表示位置X]〜CSelf44[表示位置Y] 上限= 999 + 0
|■変数操作: CSelf43[表示位置X]〜CSelf44[表示位置Y] *= CSelf23[円の半径] + 0
|■変数操作: CSelf43[表示位置X]〜CSelf44[表示位置Y] /= 1000 + 0
|■変数操作: CSelf43[表示位置X] += CSelf21[円の中心X] + 0
|■変数操作: CSelf44[表示位置Y] += CSelf22[円の中心Y] + 0
|■ピクチャ移動:CSelf41[表示ピクチャ番号] X:CSelf43[表示位置X] Y:CSelf44[表示位置Y] / 0(0)フレーム /
       パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf40[処理済数]〜CSelf41[表示ピクチャ番号] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■カーソルの表示
■変数操作: CSelf41[表示ピクチャ番号] = CSelf25[基本ピクチャ番号] + CSelf17[選択中項目]
■変数操作+: CSelf43[表示位置X] = ピクチャ:CSelf41[表示ピクチャ番号] の X座標
■変数操作+: CSelf44[表示位置Y] = ピクチャ:CSelf41[表示ピクチャ番号] の Y座標
■変数操作+: CSelf53[表示サイズX] = ピクチャ:CSelf41[表示ピクチャ番号] の 画像サイズ(横)
■変数操作+: CSelf54[表示サイズY] = ピクチャ:CSelf41[表示ピクチャ番号] の 画像サイズ(縦)
■変数操作: CSelf53[表示サイズX]〜CSelf54[表示サイズY] += 4 + 0
■ピクチャ表示:10 [中心]ウィンドウ「<SQUARE>」サイズ[CSelf53[表示サイズX],CSelf54[表示サイズY]]
       X:CSelf43[表示位置X] Y:CSelf44[表示位置Y] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[50] B[100]
■ピクチャエフェクト:10 [点滅A(明滅)] R30/G30/B30 明滅間隔(30)フレーム

▼ ■■■■■■■■■■キー処理
●ラベル地点「キー処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
■ウェイト:1 フレーム
■条件分岐(変数): 【1】 CSelf12[決定予約] が 2 と同じ
-◇分岐: 【1】 [ CSelf12[決定予約] が 2 と同じ ]の場合↓
|▼ 回転が終わったら決定を実行
|■条件分岐(変数): 【1】 CSelf30[目標の角度] が CSelf31[現在の角度] 以外
|-◇分岐: 【1】 [ CSelf30[目標の角度] が CSelf31[現在の角度] 以外 ]の場合↓
||▼ まだ回転中
||●ラベル「角度設定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■変数操作: CSelf12[決定予約] = 1 + 0
|■サウンド:SE0「[システム]決定音」再生 / 遅延:0フレーム
|●ラベル「決定処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇
■キー入力:CSelf10[キー] 左右(4,6) 決定(10) キャンセル(11)
■変数操作: CSelf11[キー待ち時間] -= 1 + 0
■条件分岐(変数): 【1】 CSelf10[キー] が 0 と同じ
         【2】 CSelf11[キー待ち時間] が 1 以上
-◇分岐: 【1】 [ CSelf10[キー] が 0 と同じ ]の場合↓
|■変数操作: CSelf11[キー待ち時間] = 0 + 0
|■条件分岐(変数): 【1】 CSelf30[目標の角度] が CSelf31[現在の角度] と同じ
|-◇分岐: 【1】 [ CSelf30[目標の角度] が CSelf31[現在の角度] と同じ ]の場合↓
||●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|●ラベル「角度設定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
-◇分岐: 【2】 [ CSelf11[キー待ち時間] が 1 以上 ]の場合↓
|■条件分岐(変数): 【1】 CSelf30[目標の角度] が CSelf31[現在の角度] と同じ
|-◇分岐: 【1】 [ CSelf30[目標の角度] が CSelf31[現在の角度] と同じ ]の場合↓
||●ラベル「キー処理」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|●ラベル「角度設定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇
■変数操作: CSelf11[キー待ち時間] = 16 + 0
■条件分岐(変数): 【1】 CSelf10[キー] が 4 と同じ
         【2】 CSelf10[キー] が 6 と同じ
         【3】 CSelf10[キー] が 10 と同じ
-◇分岐: 【1】 [ CSelf10[キー] が 4 と同じ ]の場合↓
|▼ 反時計回りに回転
|■サウンド:SE1「[システム]カーソル移動」再生 / 遅延:0フレーム
|■変数操作: CSelf17[選択中項目] -= 1 + 0
|■条件分岐(変数): 【1】 CSelf17[選択中項目] が -1 以下
|-◇分岐: 【1】 [ CSelf17[選択中項目] が -1 以下 ]の場合↓
||■変数操作: CSelf17[選択中項目] = CSelf20[項目総数] - 1
||■
|◇分岐終了◇
|■
-◇分岐: 【2】 [ CSelf10[キー] が 6 と同じ ]の場合↓
|▼ 時計回りに回転
|■サウンド:SE1「[システム]カーソル移動」再生 / 遅延:0フレーム
|■変数操作: CSelf17[選択中項目] += 1 + 0
|■条件分岐(変数): 【1】 CSelf17[選択中項目] が CSelf20[項目総数] 以上
|-◇分岐: 【1】 [ CSelf17[選択中項目] が CSelf20[項目総数] 以上 ]の場合↓
||■変数操作: CSelf17[選択中項目] = 0 + 0
||■
|◇分岐終了◇
|■
-◇分岐: 【3】 [ CSelf10[キー] が 10 と同じ ]の場合↓
|▼ 決定
|■変数操作: CSelf11[キー待ち時間] = 999999 + 0
|■変数操作: CSelf12[決定予約] = 2 + 0
|■
-◇上記以外
|▼ キャンセル
|■サウンド:SE2「[システム]キャンセル音」再生 / 遅延:0フレーム
|●ラベル「終了」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇分岐終了◇
●ラベル「角度設定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
▼ ■■■■■■■■■■決定処理
●ラベル地点「決定処理」 <<<<<<<<<<<<<<<<<<<<<<<<★
■条件分岐(変数): 【1】 CSelf17[選択中項目] が 0 と同じ
         【2】 CSelf17[選択中項目] が 1 と同じ
         【3】 CSelf17[選択中項目] が 2 と同じ
-◇分岐: 【1】 [ CSelf17[選択中項目] が 0 と同じ ]の場合↓
|■文章:「A」を選択。
|■
-◇分岐: 【2】 [ CSelf17[選択中項目] が 1 と同じ ]の場合↓
|■文章:「B」を選択。
|■
-◇分岐: 【3】 [ CSelf17[選択中項目] が 2 と同じ ]の場合↓
|■文章:「C」を選択。
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf17[選択中項目] が 3 と同じ
         【2】 CSelf17[選択中項目] が 4 と同じ
         【3】 CSelf17[選択中項目] が 5 と同じ
-◇分岐: 【1】 [ CSelf17[選択中項目] が 3 と同じ ]の場合↓
|■文章:「D」を選択。
|■
-◇分岐: 【2】 [ CSelf17[選択中項目] が 4 と同じ ]の場合↓
|■文章:「E」を選択。
|■
-◇分岐: 【3】 [ CSelf17[選択中項目] が 5 と同じ ]の場合↓
|■文章:「F」を選択。
|■
◇分岐終了◇
●ラベル「角度設定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
▼ ■■■■■■■■■■終了処理
●ラベル地点「終了」 <<<<<<<<<<<<<<<<<<<<<<<<★
■変数操作: CSelf41[表示ピクチャ番号] = CSelf25[基本ピクチャ番号] + 0
■変数操作: CSelf41[表示ピクチャ番号] += CSelf20[項目総数] - 1
■ピクチャ消去:CSelf25[基本ピクチャ番号] 〜 CSelf41[表示ピクチャ番号] / 0(0)フレーム


以上で設定完了です。


▲トップへ戻る▲



◎関連ページ

◆回転型の自作メニューを作る
┣◆回転型の自作メニューでアイテム名を表示
┗◆回転型の自作メニューをカーソルで操作

◆自作メニューの基礎講座
┗◆自作メニュー:横4×縦3

◆自作アイテムメニューを作る

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

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