【解決済み】VXAceRGSS3スクリプトでの画像表示
Posted: 2019年6月16日(日) 16:59
VXAceRGSS3スクリプトでの画像表示
RPGツクールVXAceのマップ画面で
イベントコマンドの「スクリプト」を用いて
画像を表示させる方法をいくつか試しました。
\Graphics\Picturesに
表示させたい画像ファイルを入れます。
マップイベントで
イベントコマンドの「スクリプト」にスクリプトを書きます。
マップイベントA(画像表示)、
マップイベントB(画像消去)を作成します。
方法1 #####################################################
イベントコマンドの「ピクチャの表示」「ピクチャの消去」と同じ?
マップイベントA
screen.pictures[1].show("画像111", 0, 0, 0,
100, 100, 255, 0)
マップイベントB
screen.pictures[1].erase
方法2 #####################################################
ウィンドウを生成し、
画像を取り込んだキャッシュを生成し、
キャッシュと同サイズの矩形を生成し、
ウィンドウを透明にして、
ウィンドウにキャッシュを矩形で表示する。
マップイベントA
$window222 = Window_Base.new(0, 0, 640, 480)
cache222 = Cache.picture("画像222")
rect222 =
Rect.new(0, 0, cache222.width, cache222.height)
$window222.opacity = 0
$window222.contents.blt(0, 0, cache222, rect222)
マップイベントB
$window222.dispose
方法3 #####################################################
画像ファイルへのパスを設定し、
スプライトを生成し、
パスの画像でビットマップを生成し、スプライトに表示する。
マップイベントA
filename333 = "Graphics/Pictures/画像333"
$sprite333 = Sprite.new
$sprite333.bitmap = Bitmap.new(filename333)
マップイベントB
$sprite333.dispose
方法4 #####################################################
画像でキャッシュを生成し、
スプライトを生成し、
スプライトにキャッシュを表示する。
マップイベントA
$cache444 = Cache.picture("画像444")
$sprite444 = Sprite.new
$sprite444.bitmap = $cache444
マップイベントB
$sprite444.dispose
$cache444.dispose
方法5 #####################################################
画像ファイルへのパスを設定し、
ビューポートを位置と大きさを指定して生成し、
スプライトをビューポート参照で生成し、
ビューポート内のスプライト位置を指定し、
パスの画像でビットマップを生成し、スプライトに表示する。
マップイベントA
bitmap555 = "Graphics/Pictures/画像555"
$viewport555 = Viewport.new(50, 50, 100, 100)
$sprite555 = Sprite.new($viewport555)
$sprite555.x = 0
$sprite555.y = 0
$sprite555.bitmap = Bitmap.new(bitmap555)
マップイベントB
$sprite555.dispose
$viewport555.dispose
イベントAに話しかけると画像が表示され、
表示中主人公がマップを移動可能で、
イベントBに話しかけると画像が消えます。
質問1:
画像表示後、キャンセルキーでメニュー画面など表示すると、
開いたウィンドウの下で画像は表示され続けますが、
その後キャンセルキーでウィンドウを閉じてマップ画面に戻ると、
方法1 2 の画像は表示され続けますが、
方法3 4 5 の画像は消えます。
どうすれば消えないように出来ますか?
質問2:
画像の消去の方法は、上記のもので正しく出来ているのでしょうか?
なるべくnewで生成したものをdisposeするようにしてみましたが、
表示されないだけで画像読み込みが続いてたり、
データが消えずに蓄積しているのではと思ったので。
以上よろしくお願いいたします。
導入済スクリプト素材
CACAO氏
http://cacaosoft.webcrow.jp/
RPGツクールVX Ace Fan Patch
RPGツクールVXAceのマップ画面で
イベントコマンドの「スクリプト」を用いて
画像を表示させる方法をいくつか試しました。
\Graphics\Picturesに
表示させたい画像ファイルを入れます。
マップイベントで
イベントコマンドの「スクリプト」にスクリプトを書きます。
マップイベントA(画像表示)、
マップイベントB(画像消去)を作成します。
方法1 #####################################################
イベントコマンドの「ピクチャの表示」「ピクチャの消去」と同じ?
マップイベントA
screen.pictures[1].show("画像111", 0, 0, 0,
100, 100, 255, 0)
マップイベントB
screen.pictures[1].erase
方法2 #####################################################
ウィンドウを生成し、
画像を取り込んだキャッシュを生成し、
キャッシュと同サイズの矩形を生成し、
ウィンドウを透明にして、
ウィンドウにキャッシュを矩形で表示する。
マップイベントA
$window222 = Window_Base.new(0, 0, 640, 480)
cache222 = Cache.picture("画像222")
rect222 =
Rect.new(0, 0, cache222.width, cache222.height)
$window222.opacity = 0
$window222.contents.blt(0, 0, cache222, rect222)
マップイベントB
$window222.dispose
方法3 #####################################################
画像ファイルへのパスを設定し、
スプライトを生成し、
パスの画像でビットマップを生成し、スプライトに表示する。
マップイベントA
filename333 = "Graphics/Pictures/画像333"
$sprite333 = Sprite.new
$sprite333.bitmap = Bitmap.new(filename333)
マップイベントB
$sprite333.dispose
方法4 #####################################################
画像でキャッシュを生成し、
スプライトを生成し、
スプライトにキャッシュを表示する。
マップイベントA
$cache444 = Cache.picture("画像444")
$sprite444 = Sprite.new
$sprite444.bitmap = $cache444
マップイベントB
$sprite444.dispose
$cache444.dispose
方法5 #####################################################
画像ファイルへのパスを設定し、
ビューポートを位置と大きさを指定して生成し、
スプライトをビューポート参照で生成し、
ビューポート内のスプライト位置を指定し、
パスの画像でビットマップを生成し、スプライトに表示する。
マップイベントA
bitmap555 = "Graphics/Pictures/画像555"
$viewport555 = Viewport.new(50, 50, 100, 100)
$sprite555 = Sprite.new($viewport555)
$sprite555.x = 0
$sprite555.y = 0
$sprite555.bitmap = Bitmap.new(bitmap555)
マップイベントB
$sprite555.dispose
$viewport555.dispose
イベントAに話しかけると画像が表示され、
表示中主人公がマップを移動可能で、
イベントBに話しかけると画像が消えます。
質問1:
画像表示後、キャンセルキーでメニュー画面など表示すると、
開いたウィンドウの下で画像は表示され続けますが、
その後キャンセルキーでウィンドウを閉じてマップ画面に戻ると、
方法1 2 の画像は表示され続けますが、
方法3 4 5 の画像は消えます。
どうすれば消えないように出来ますか?
質問2:
画像の消去の方法は、上記のもので正しく出来ているのでしょうか?
なるべくnewで生成したものをdisposeするようにしてみましたが、
表示されないだけで画像読み込みが続いてたり、
データが消えずに蓄積しているのではと思ったので。
以上よろしくお願いいたします。
導入済スクリプト素材
CACAO氏
http://cacaosoft.webcrow.jp/
RPGツクールVX Ace Fan Patch