ゲーム作成のメモ@枯渇

ゲーム作成のメモ@枯渇

僕がWOLF RPGエディター(通称ウディタ)を使ってる際に
注意するべき点だとかをメモってく程度の日記です。更新はマイペースなのでぐだります。

Amebaでブログを始めよう!

久しぶりの書き込み。


長い間色々なコモン作ってました。マイペースで。

その中でもメニューは一歩目すらわからなかった。


だって、いくらウィンドウとかカーソル表示できても

主人公以外の他のイベントは止まってくれないから!

それともう一つ。自作したコモンを呼び出すと

最初からあったメニューも呼び出されてしまう。


調べてみたところ、デフォルトのメニューコモン(127番)は

126番を経由して呼び出されている模様。

そしてどうやら、126番で127番のコモンを「呼出」ではなく

「予約」をして出しているらしい。


予約について知らなかったのでこれもまたまた調べたところ

コモンイベントの予約というのは

親コモンの起動条件に関係なく一度だけ「自動実行」ができる

という、何ともメニュー作りにありがたい機能なようで。

自動実行という事はつまり他の動くイベントは停止してくれるということですね。

あとは126番の中の予約先を自作メニューコモンに変更すればおkですよね。

もしくは自作メニューコモンの一つ上の場所にコピペすればおkです。

いやぁ、これで捗りますね。

自作の装備画面のようなものを作っているのですが

キャンセルで閉じようとすると

ちょっとの長押しでメニューまで連続で閉じてしまうという問題にぶち当たりました。


キー入力禁止してウェイトかけてキー入力の禁止を解除して・・・

みたいな事をやってみたけど、これでは入力が解除されて

元の状態に戻るだけですね。いやはやお恥ずかしい←


調べてみたところ、まず始めにループさせて

そのあとにキャンセルキーが押されてるか押されていないか

の判断をするコマンドが必要とのことでした。

押されていなければ



その判断をするためには

Xキーを入力受付けさせた変数を使うという事になりますね。




・・・あれ


今、この記事を書きながらそのコマンドいじってたんですけど

どうやら、最後にXキーを入力受付けさせた変数に0代入

するだけで、問題解決のようです。(なんだこれ感)


あれ、これでいいのか?まじでこれでいいのか?

これさっき確かめてダメだったような気がするんだけど。すごい心配なんですけど。

調べた事とちょっと(というかだいぶ)違うけど

長押ししてもメニューまで閉じないし。



・・・と、まあ不安は残ってるけど目的の問題は解決したし

不具合出るまでこの件は保留にさせていただきますね!

前回から一週間ほど経ってますね。

ぐだぐだでごめんなさい。


で、えっとまず画像とか

載せたかったけど、お借りしてる素材サイト様の著作権うんぬんが関わりそうなので

控えさせていただきますね。ウディタ自体は除きます。


それでは、

メニューから呼び出すコモンを僕なりに作ってみます。


ただし、全部だと書く量が多くて(おもに僕が)だれちゃうので必要な部分抜粋。


ちなみにリスト的なやつ作ろうと思ってます。

工夫すれば図鑑や装備コモンのようになるでしょう。

(だけど、この記事は必要な部分を抜粋しているよ!)


まず、必要なのはウィンドウですね。下地は省きます。

メニューから呼び出すコモンなのでピクチャ番号は12000~が好ましいかな。



■変数操作:CSelf0[ ]=12000+0


Cself0を基本のピクチャ番号としましょう。

このようにすると沢山ウィンドウを表示するときに便利ですね。


次に、メニューのものと同じウィンドウを使いたいので

DB操作で読み込んでおきましょう。


■DB読み込み(ユーザ):CSelf5[ ]=ユーザDB[画像/音声設定:画像/音声基本設定:ウィンドウ画像ファイル]


ぶっちゃけ、値で構いません(UDBのタイプ16 データ0 項目0です。)

こうする事でUDBからメニューの画像を変えてもメニューと同じウィンドウになります。


それではさっそくウィンドウ表示をしましょう。


■変数操作:CSelf20[ ]= CSelf0[ ] + 1 

じゃなくて、その前に新たにウィンドウ用のピクチャ番号を作っておきましょう。

(1600000と入力すればCSelf0を呼び出す事ができます。

 エディタ内にある「ヘルプ」に一覧が載ってるので活用するといいでしょう)


■ピクチャ表示:CSelf20[ ][中心]ウィンドウ(CSelf5[ ])サイズ[200,390] X:-11000(以下省略


このピクチャ表示は CSelf20(ピクチャ番号) と CSelf5(ウィンドウ画像) を呼び出してます。

CSelf20は基本ピクチャ番号(CSelf0=12000)に1を足してます。

(下地はあってもなくてもって感じなので一応保険のつもり)


あとそれから右へスライドしながらウィンドウが出てきてほしいので

Xの値を-1100とかにして画面外に表示しておきました。

これを画面内へ移動させればいいわけです。



次に画面外に表示されたウィンドウを移動。


■ピクチャ移動:CSelf20[ ] X:127 Y:230/9(0)フレーム/パターン1(以下省略

■ピクチャ移動:CSelf20[ ] X:127 Y:230/9(5)フレーム/パターン1

■ピクチャ移動:CSelf20[ ] X:127 Y:230/9(9)フレーム/パターン1


同じものを3つ並べてるように見えますが、

0フレーム 5フレーム 9フレームという感じにディレイの値を変えています。


こうすると座標(127,230)に近くづくにつれて移動が遅くなって行く(はず)。

(たぶん公式でいってる慣性というやつです。)



その後は新しくまたピクチャ番号を作って表示して移動して・・・の繰り返しです。



まとめておくとこんな感じ。

■変数操作:CSelf0[ ]=12000+0

■DB読み込み(ユーザ):CSelf5[ ]=ユーザDB[画像/音声設定:画像/音声基本設定:ウィンドウ画像ファイル]

■変数操作:CSelf20[ ]= CSelf0[ ] + 1 

■ピクチャ表示:CSelf20[ ][中心]ウィンドウ(CSelf5[ ])サイズ[200,390] X:-11000(以下省略

■ピクチャ移動:CSelf20[ ] X:127 Y:230/9(0)フレーム/パターン1(以下省略

■ピクチャ移動:CSelf20[ ] X:127 Y:230/9(5)フレーム/パターン1

■ピクチャ移動:CSelf20[ ] X:127 Y:230/9(9)フレーム/パターン1


一応"僕なり"なので上手い人が見ると

もっと便利にできるポイントがあると思います。つか、あるでしょう。



まあ、という感じでそんな感じです。

呼び出す事が色々と重要だと思います。多様に使えたりするので。


メモのつもりで、いつ自分が見てもわかるように丁寧に書いたつもり

だけど何か逆にわかりにくくなってるような気がしないでもない。

最悪自分がわかれさえすればいいという←


以上です。