【解決済み】ゲームオブジェクト名を短くするには

aiueo
記事: 50
登録日時: 2016年5月09日(月) 23:33

【解決済み】ゲームオブジェクト名を短くするには

投稿記事by aiueo » 2016年9月05日(月) 21:30

ゲームオブジェクト名を短くするには

$game_variables や $game_self_switches といったゲームオブジェクトは表記が長いので、
マップ画面のイベントコマンド「スクリプト」の入力欄ではスペースが足りなくなります。
例えばスクリプトでピクチャを表示したい場合
screen.pictures[1].show($game_variables[1], 0, 0, 0, 100, 100, 255, 0)

n = screen.pictures[1]
m = $game_variables[1]
n.show(m, 0, 0, 0, 100, 100, 255, 0)
のように長い部分をローカル変数に代入したり改行などして、
入力欄にある程度は収めることが出来ますが、
その分だけ行数を消費します。

試しにスクリプト画面でShift+Ctrl+Fで$game_variablesを検索して、
全部$GVと書き換えると一応動作はするようです。
しかし直接書き換えるのはあまりいい方法とは思えません。
もっと良い方法はあるでしょうか。

以上宜しくお願いいたします。
最後に編集したユーザー aiueo on 2016年9月29日(木) 21:48 [ 編集 1 回目 ]

アバター
ONOZUKA
記事: 63
登録日時: 2015年11月11日(水) 13:31
お住まい: 幻想郷
連絡を取る:

Re: ゲームオブジェクト名を短くするには

投稿記事by ONOZUKA » 2016年9月05日(月) 21:54

もっといい方法もあるかもしれませんので、一週間くらいは返答待ってみてください。

配列を代入して行数を1減らす方法。
nn = [screen.pictures[1],$game_variables[1]]
nn[0].show(nn[1],0,0,0,100,100,255,0)

計算部分などには使える、Game_Interpreter
Game_Interpreter
def picture_show #picture_showとスクリプトに打てば起動
n = screen.pictures[1]
m = $game_variables[1]
n.show(m, 0, 0, 0, 100, 100, 255, 0)
end
=============================================================================
RPGツクールVXACEでゲームを作っているはずです!
HP:http://tenkoma.info Twitter:https://twitter.com/ONOZUKA7
=============================================================================
aiueo
記事: 50
登録日時: 2016年5月09日(月) 23:33

Re: ゲームオブジェクト名を短くするには

投稿記事by aiueo » 2016年9月05日(月) 22:35

ONOZUKA様ありがとうございます
了解しました
ショウ
記事: 149
登録日時: 2016年8月10日(水) 19:52

Re: ゲームオブジェクト名を短くするには

投稿記事by ショウ » 2016年9月05日(月) 23:23

m = "pictureフォルダ内の画像のファイル名"
n = screen.pictures[ピクチャ番号を]
n.show(m, 0, 0, 0, 100, 100, 255, 0)

行数は減りませんが個人的にはピクチャを表示するなら$game_variablesを使うより
これが分かりやすくて良いと思います。
これならファイル名の書き換えだけでよく、
いちいち$game_variablesにファイル名を代入する必要も無く使いまわしやすいです。
更に短くしたいなら画像のファイル名を短くする事でしょうか。

また余談ですが、$(グローバル変数)を使ったイベントスクリプトの場合例えば
スクリプト:$sc = screen.pictures[ピクチャ番号を]
文章の表示
スクリプト:m = "pictureフォルダ内の画像のファイル名"
       $sc.show(m, 0, 0, 0, 100, 100, 255, 0)

というようにイベントを組んだ場合、
コマンドをわけても有効で使い方次第では行数は一応減ります。
アバター
オシブ
記事: 20
登録日時: 2015年11月10日(火) 15:25
連絡を取る:

Re: ゲームオブジェクト名を短くするには

投稿記事by オシブ » 2016年9月06日(火) 01:31

究極的には、Game_Interpreterに直接書いてしまうという手があります。

class Game_Interpreter
def picture_event_command(n, m)
screen.pictures[n].show(m, 0, 0, 0, 100, 100, 255, 0)
end
end

と書いて、イベントコマンドのスクリプトに
picture_event_command(1, $game_variables[1])
と書けば一行です。
その他、カスタマイズしたいことがあれば、全てdef picture_event_command 内に設定すれば
とても便利に自分好みのイベントコマンドが作れます。
イベントコマンドのスクリプトが使いこなせるようになったと感じてきているなら、たぶんそんなに難しくはないと思います。
――――――――――――――――――――――――――――――――――――――――――――――
RPGツクールVXでシナリオ重視ゲーム作ってます。

画像
サイト:Mix Idea
アドレス:http://oxibgame.jugem.jp/
―――――――――――――――――――――――――――――――――――――――――――――――
aiueo
記事: 50
登録日時: 2016年5月09日(月) 23:33

Re: ゲームオブジェクト名を短くするには

投稿記事by aiueo » 2016年9月07日(水) 00:41

ショウ様
オシブ様
ありがとうございます

全部試して動作確認いたしました
ピクチャ表示以外にも、ゲーム変数に配列を使ったりすると入力欄が一杯になります
今まではなんとか収まってましたが
今回教えて頂いたテクニックで色々改善できそうです
ありがとうございました
アバター
CACAO
記事: 18
登録日時: 2016年9月12日(月) 14:46
連絡を取る:

Re: ゲームオブジェクト名を短くするには

投稿記事by CACAO » 2016年9月12日(月) 15:05

解決してそうですが、横から失礼します。

私も Game_Interpreter クラス内に新たにメソッドを作成する方が
使い回しや修正が容易になるので良いかと思います。

ただ、タイトル通り単に短くする方法もあります。
Ruby では、グローバル変数の別名定義ができたはずです。

alias $gv $game_variables

とすることで、$gv と $game_variables が同じ変数を指すことになります。
そのはずです。。。

グローバル変数のエイリアスなので、どこでも可能だと思いますが、
トップレベルでまとめて実行してしまうのが良いかと思います。
aiueo
記事: 50
登録日時: 2016年5月09日(月) 23:33

Re: ゲームオブジェクト名を短くするには

投稿記事by aiueo » 2016年9月12日(月) 23:42

CACAO様ありがとうございます

トップレベルは
       ←
▼ モジュール
Vocab
・・・
の上の欄でしょうか
alias $gv $game_variablesを貼り付けて
イベントコマンド「スクリプト」で$gv[20]="ツクール"とか動作するのを確認しました
短くなるので配列同士の代入とか楽になりそうです

ありがとうございました
アバター
CACAO
記事: 18
登録日時: 2016年9月12日(月) 14:46
連絡を取る:

Re: ゲームオブジェクト名を短くするには

投稿記事by CACAO » 2016年9月13日(火) 19:20

トップレベルは、クラスやモジュールを定義する一番外側の場所です。
p self として main と返されるところですね。
セクションのような上下の関係ではないので、
セクションは、▼ 素材より下の方が良いと思います。

コード: 全て選択

-- ここ --
class Hoge
end
-- ここ --
module RPG
  class Piyo
  end
end
-- ここ --
aiueo
記事: 50
登録日時: 2016年5月09日(月) 23:33

Re: ゲームオブジェクト名を短くするには

投稿記事by aiueo » 2016年9月29日(木) 21:48

CACAO様ありがとうございます
トップレベルはそういう事だったとは・・・
やっとわかりました
ありがとうございました

“VX / Ace:質問” へ戻る