透過画像 セーブ・ロード(質問掲示板)
投稿:
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と出ました、なぜでしょうか…?
コメントする
コメントするには、ログインする必要があります。
コメント一覧
同じマップ上だったら、こんな方法も。
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を表示する
黒い画面
なるほどです~