透過画像 セーブ・ロード(質問掲示板)
投稿: ugonight
投稿:2012/01/27 21:23:27(最新:2012/02/05 12:36:05)
画面を暗くするテスト - 【2DRPG】
あのゲームのスクリプトで
という感じで、画像の切り替えしているのですが
開始スクリプトに
と書いても、セーブ・ロードしても透過画像が消えてしまいます。
で、ためしにspeak(getVariable("PCT"))と入力してみたらnullと出ました、なぜでしょうか…?
ツイート
あのゲームのスクリプトで
case speakWithSelect(16,"黒中空_100","黒中空_90","黒中空_80","黒中空_70","黒中空_50","黒_90","黒_80","黒_70","黒_50","橙_70","橙_50","青_70","青_50","紺_70","紺_50","元に戻す", "どの透過背景にしますか?") when 0 setVariable("TEXT", "黒中空_100") setVariable("BGM", 37104) setVariable("PCT", 104560) when 1 setVariable("TEXT", "黒中空_90") setVariable("BGM", 37104) setVariable("PCT", 104574) when 2 setVariable("TEXT", "黒中空_80") setVariable("BGM", 37104) setVariable("PCT", 104581) when 3 setVariable("TEXT", "黒中空_70") setVariable("BGM", 37104) setVariable("PCT", 104588) when 4 setVariable("TEXT", "黒中空_50") setVariable("BGM", 37104) setVariable("PCT", 104595) when 5 setVariable("TEXT", "黒_90") setVariable("BGM", 37104) setVariable("PCT", 104602) when 6 setVariable("TEXT", "黒_80") setVariable("BGM", 37104) setVariable("PCT", 104609) when 7 setVariable("TEXT", "黒_70") setVariable("BGM", 37104) setVariable("PCT", 104616) when 8 setVariable("TEXT", "黒_50") setVariable("BGM", 37104) setVariable("PCT", 104623) when 9 setVariable("TEXT", "橙_70") setVariable("BGM", 82) setVariable("PCT", 104631) when 10 setVariable("TEXT", "橙_50") setVariable("BGM", 82) setVariable("PCT", 104638) when 11 setVariable("TEXT", "青_70") setVariable("BGM", 78) setVariable("PCT", 104898) when 12 setVariable("TEXT", "青_50") setVariable("BGM", 78) setVariable("PCT", 104905) when 13 setVariable("TEXT", "紺_70") setVariable("BGM", 78) setVariable("PCT", 104914) when 14 setVariable("TEXT", "紺_50") setVariable("BGM", 78) setVariable("PCT", 104921) when 15 setVariable("TEXT", "なし") setVariable("BGM", 42) setVariable("PCT", null) end #おじさん「さぁ!これからマジックがはじまるよぉぉぉぉ」 fadeOut(0, 0, 0) deleteTextAll() textID = createText(100, 0, 200, 30) setText(textID, "透過背景:",getVariable("TEXT")) stopBGM() playBGM(getVariable("BGM")) deleteAllSprite() setCanvasVisible(true) s = createSprite(getVariable("PCT")) setSpriteRect(s,0,0,512,384, 0,0,512,384) drawCanvas() waitTime(1000) fadeIn()
という感じで、画像の切り替えしているのですが
開始スクリプトに
#おじさん「さぁ!これからマジックがはじまるよぉぉぉぉ」 deleteAllSprite() setCanvasVisible(true) s = createSprite(getVariable("PCT")) setSpriteRect(s,0,0,512,384, 0,0,512,384) drawCanvas()
と書いても、セーブ・ロードしても透過画像が消えてしまいます。
で、ためしにspeak(getVariable("PCT"))と入力してみたらnullと出ました、なぜでしょうか…?
コメントする
コメントするには、ログインする必要があります。
コメント一覧
退会したユーザー(投稿日:2012/02/05 12:10,
履歴)
同じマップ上だったら、こんな方法も。
def darkwarp(x, y) fadeOut(0, 0, 0); warpEvent("playerCharacterEvent", x, y) showImage(9404); fadeIn() moveCamera(true, getPlayerPosX(), getPlayerPosY()) fadeOut(0, 0, 0); hideImage(); fadeIn() end
まずスクリプトは以下の通り
開始スクリプト
自動実行イベント:実行条件「!(getCanvasVisible())」
他のマップへ移動するイベント
こうすることで、スクリプトの流れは
次のようになります。
なお、関数の引数を利用することで
さらに利便性を上げることも可能です
自動実行イベント:実行条件「!(getCanvasVisible())」
開始スクリプト
def changeSprite() deleteAllSprite() setCanvasVisible(true) pct = 104560 #黒中空_100 s = createSprite(pct) setSpriteRect(s,0,0,512,384, 0,0,512,384) drawCanvas() end
自動実行イベント:実行条件「!(getCanvasVisible())」
changeSprite()
他のマップへ移動するイベント
deleteAllSprite() setCanvasVisible(false)
こうすることで、スクリプトの流れは
次のようになります。
- 開始スクリプト changeSprite()ユーザ関数が作られる
- マップを移動 自動実行イベントの開始判定
- 前景が表示できる状態になっていないため
- 開始スクリプトのchangeSprite()関数に入る
- セーブ/ロードする
- マップロード完了後、自動実行イベントの開始判定
- 前景が表示できる状態は保存されないため
- 開始スクリプトのchangeSprite()関数に入る
- 他のマップへ移動するイベントで
なお、関数の引数を利用することで
さらに利便性を上げることも可能です
def changeSprite(no) deleteAllSprite() setCanvasVisible(true) #引数の値によって分岐 pct = null #なし case no when 0 pct = 104560 #黒中空_100 when 1 pct = 104574 #黒中空_90 when 2 pct = 104581 #黒中空_80 when 3 pct = 104588 #黒中空_70 end s = createSprite(pct) setSpriteRect(s,0,0,512,384, 0,0,512,384) drawCanvas() end
自動実行イベント:実行条件「!(getCanvasVisible())」
changeSprite(1) #黒中空_90を表示する
黒い画面
なるほどです~