スポンサーサイト

 --------
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
カテゴリ :スポンサー広告 トラックバック(-) コメント(-)

マップコマンドの編集

 2010-07-20
<拡張> デバッグ機能のスクリプトを導入すると、
マップコマンドという機能が使用できる。
これは、マップ上で特定のボタンを押すと、コマンドウィンドウが表示され、
その中から処理を選んで実行するという機能だ。

デバッグ機能に機能追加するには、本体のスクリプトを変更する必要があり、
簡単にはいかないし、デフォルト以外の操作を行おうとすれば、
競合する可能性も高くなる。デバッグ機能としては致命的だ。

そこで、取り外しが可能な処理としてマップコマンドを用意しています。
自分の必要な機能だけを入れることができ、
デフォルト以外の操作も競合の心配なく実装することができます。
自分で作成して機能追加することも可能です。
これにより、独自のスクリプトの操作もできちゃいます。

1.項目の非表示
不要な処理は、コメントアウトするだけで非表示にすることができます。
SS091118580538.png


2.項目の並び順を変更
項目の並びは、次のカッコ内で設定しています。
CMD_NAME += COMMANDS.values_at(...).compact
この部分を変更すると並び順を変更したり、項目を非表示にすることが出来ます。
SS091118570518.png
サンプルでは、10進数指定でしたが 0xnn の形で設定した方が間違いが減ると思います。


3.コマンドの作成
マップコマンドの項目を選択して実行する処理です。
下のほうにあるテンプレートをコピペします。
必要なのは、「定数」と「コマンド処理の更新」なので、残り2つは削除しちゃってください。
COMMANDS っていうのが、項目名の配列だったと思います。
数字が被らないように変更して CMD_NAME0x00..0x02 の部分も合わせて変更します。

13行目のエイリアス部分も変更が必要です。
他と被らない名前を付けてください。
一般的には、所属するグループ名とスクリプト名を使うと思います。
私ひとり者・・・って方は、サイト名やHNなどを使用するといいと思いますよ。
スクリプト名もそれを表しているものでいいので、番号を振ったりクラス名を使ったり。
グループ名が他者との競合対策、スクリプト名が自分との競合対策です。
過去に同じところ扱ってるかもしれないので。

17~19行目が実行する処理となります。
COMMANDS に設定した番号で分岐させて、その中に処理を書いて終わりです。
他の部分は変更する必要はありません。
あ、でも使わない処理は削除しといてくださいね。


4.数値入力の作成
数値入力の処理は、テンプレートでいう 0x01 の処理です。
項目を選択すると数値入力するウィンドウが表示され、
数値を決定すると処理が実行されます。

20~22行目の処理ですね。
基本はここの2行をコピペするだけでOKです。
show_number がたぶんウィンドウを表示する処理で、
@number_window.set(3, 0, true) がウィンドウの設定です。
引数は、(桁数 = 5, 初期値 = 0, マイナス不可 = false, 初期選択桁 = nil) となります。
初期選択桁は、一番左が 0 だと思います。

数値入力を行うには、「数値入力の更新」部分を設定する必要があります。
「コマンド処理の更新」とほぼ同じなので同じように変更してください。
実行する処理をこちらに記述するかの違いですね。
入力された数値は、@number_window.number で取得できます。
処理の実行後に hide_number を呼び出してウィンドウを閉じてください。


5.項目選択の作成
テンプレート0x02 の処理が項目選択です。
マップコマンドを選択後、さらに項目選択を行います。

設定方法は数値入力を同じです。
show_select でウィンドウを表示し、
@select_window.set(["項目A", "項目B", "項目C"]) で項目の設定を行います。
引数は、(項目名, 横に並べる数 = 1, 項目名の描画位置(align) = 0)
第2引数は、3くらいまでじゃないとはみ出たと思います。
縦幅とか位置とかは自動調整されます。

「項目選択の更新」で項目の処理を実行します。
こちらも数値入力と同じなので、問題ないと思います。
@select_window.index で選択された項目の番号を取得します。
処理が完了したら hide_select でウィンドウを閉じてください。


※ テンプレート
if CAO::Debug::USE_MAP_COMMAND
class Scene_DebugCommand < Scene_Base
#--------------------------------------------------------------------------
# ● 定数
#--------------------------------------------------------------------------
COMMANDS[0x00] = "処理実行"
COMMANDS[0x01] = "数値入力"
COMMANDS[0x02] = "項目選択"
CMD_NAME += COMMANDS.values_at(*(0x00..0x02)).compact
#--------------------------------------------------------------------------
# ○ コマンド処理の更新
#--------------------------------------------------------------------------
alias _cao_input_command_xxx input_command
def input_command
_cao_input_command_xxx
case COMMANDS.index(CMD_NAME[@command_window.index])
when 0x00 # 処理実行
Sound.play_decision
p "処理実行"
when 0x01 # 数値入力
show_number
@number_window.set(3, 0, true)
when 0x02 # 項目選択
show_select
@select_window.set(["項目A", "項目B", "項目C"])
end
end
#--------------------------------------------------------------------------
# ○ 数値入力の更新
#--------------------------------------------------------------------------
alias _cao_input_number_xxx input_number
def input_number
_cao_input_number_xxx
case COMMANDS.index(CMD_NAME[@command_window.index])
when 0x01 # 数値入力
Sound.play_decision
p @number_window.number
hide_number
end
end
#--------------------------------------------------------------------------
# ○ 項目選択の更新
#--------------------------------------------------------------------------
alias _cao_input_select_xxx input_select
def input_select
_cao_input_select_xxx
case COMMANDS.index(CMD_NAME[@command_window.index])
when 0x02 # 項目選択
Sound.play_decision
p @select_window.index
hide_select
end
end
end
end # if CAO::Debug::USE_MAP_COMMAND
コメント




 

 ※ コメント内にURLを含めるには、バッククォート(`)をURLの直前に付け加えてください。


管理人のみ閲覧許可 [?]

トラックバック
トラックバックURL:
http://cacaosoft.blog42.fc2.com/tb.php/426-9eb26d3f
≪ トップページへこのページの先頭へ  ≫
カレンダー
04 << 2017/05 >> 06
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -

カテゴリー
最近の記事
02/28 お返事
02/14 お返事
01/21 お返事
01/12 更新情報
11/28 お返事

最近のコメント
03/16 お返事
01/21 お返事
11/30 z座標
11/20 z座標
08/03 お返事

タグクラウド

リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。