ピクチャの消去 / ツクールVXAceスクリプト(RGSS3)wiki
ツクールVXAceでピクチャの消去をスクリプトで行うなら以下の通りです。
screen.pictures[番号].erase
サンプルコード(番号1の画像を消去)
screen.pictures[1].erase
コード解説
1行目のscreenとはGame_Screenクラスを参照しています。
screen.pictures[番号]で指定した番号のピクチャに関するデータを参照しています。
ピクチャの消去では画像データそのものを消去している訳ではなく、画像番号に対応する画像名を""、つまり空にすることによって消えたようにしています。
画像データそのものは存在しているため、フレームごとにそのデータに関しての読み込みがなされます。
このため、使用する画像番号を無暗に増やすことは、たとえ画像をイベントコマンドで消去したところで存在は消えていないので、ゲームが重くなる原因となります。
ピクチャ関連は"screen.pictures[番号]"が長いため、イベントスクリプトに載せると長くなり、エラーが出る原因となるので、一度変数に代入する必要があります。
さらにピクチャ関連をスクリプトで行う場合はピクチャの変数を頻繁に使うことになるため、スクリプトに慣れないうちは$がついたグローバル変数と呼ばれるものを使うことをお勧めします。
なぜならイベントスクリプトでは、スクリプト処理をしている行が別になると内容が引き継がれないからです。
例えば以下の例では3行目でsp3が未定義のため起こるエラーが発生します。

しかし、以下のように$を付けてグローバル変数にするとエラーなく、正常に処理されます。

もし、グローバル変数を使用せず、以上のような処理をしようとすると以下のようになります。

このようにイベントスクリプト内でもう一度ピクチャを宣言しなければならず、これでは非効率的です。
グローバル変数に代入しておけば、別コマのイベントスクリプトでもピクチャをわざわざ宣言しなくても使用することが出来るため、効率的です。
ただし、注意としては「グローバル変数」と名前がついているようにゲーム中どこからでも参照出来てしまうため、誤って同じ名前を付けてしまったときに予期せぬ動作やエラーを引き起こす原因となる点です。
このため、名前を付ける際は被らない名前を付けるようにしてください。
ツクールVXAceスクリプトリファレンスwikiトップページへ戻る
オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。