複数の透過前景の操作が上手く行かず、ゲームが完成させられない…(質問掲示板

投稿: Material 110912 1 mini アイネ・レグルス 投稿:2012/12/17 18:32:17(最新:2012/12/18 09:09:18)
複数の透過前景を表示させるスクリプトをやったのですが、フラグやイベントは合っているはずなのに、ロードした時に表示される透過前景が逆になってしまいます…

開始スクリプトに記述したのは

if getFlag("画像切り替え") 


def changeSprite()
   deleteAllSprite()
   setCanvasVisible(true)
   pct = 153793
   s = createSprite(pct)
   setSpriteRect(s,0,0,512,384, 0,0,512,384)
   drawCanvas()
end

else 
def changeSprite()
   deleteAllSprite()
   setCanvasVisible(true)

   pct = 153779
   s = createSprite(pct)
   setSpriteRect(s,0,0,512,384, 0,0,512,384)
   drawCanvas()
 end    
end

です。

マップ切り替えの中でフラグをonにしたはずなのですが、移動先でセーブした後ロードすると正しいスプライトが表示されません…

どこを改善すればいいのでしょうか?

コメントする

コメントするには、ログインする必要があります。

コメント一覧

       256 mini 池ちゃん(翡翠ヶ池)(投稿日:2012/12/18 08:06, 履歴)
def touka(no)
  deleteAllSprite()
  setCanvasVisible(true)
    #引数の値によって分岐
  case no
   when 0
     pct = 153772 #霧50
   when 1
      pct = 153779 #霧80
   when 2
      pct = 153786 #火炎
   when 3
      pct = 153793 #水中
   when 4
      pct = 104623 #黒50
   when 5
      pct = 104609 #黒80
   when 6
      pct = 104609 ; pctt = 153779 ; #黒80+霧80
   end
     s = createSprite(pct)
   setSpriteRect(s,0,0,512,384, 0,0,512,384) #1番目
   if no == 6
   s = createSprite(pctt)
   setSpriteRect(s,0,0,512,384, 0,0,512,384) #2番目(二個同時の時)
   end
   drawCanvas()
end 

僕はこんな感じにしました

後ここの部分は必要無いと思うのですが・・・
if getFlag("画像切り替え") 
#と途中のelseと最後のend
Material 110912 1 mini アイネ・レグルス(投稿日:2012/12/18 08:51, 履歴)
そのような方法があったんですね
でも実はこの問題自己解決していたんですよね…苦笑
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/12/18 09:04, 履歴)
開始スクリプトは
ゲームデータロード前に実行されるため

フラグなどを入れていても意味がありません


池ちゃんさんのやり方のように
ユーザ関数に引数を設定する方式で
処理内容を分けるような仕組みを
設定する必要があります
Material 110912 1 mini アイネ・レグルス(投稿日:2012/12/18 09:09, 履歴)
なるほど…ここではdefを使う方法をしなくてはならなかったんですね