透過前景表示で動けなくなる(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2012/06/21 23:44:21(最新:2012/06/27 23:36:27)
無限ループがどこにもないはずなのに、動けなくなります。。
検証用ゲーム

#開始スクリプト


def tuka_zenkei(PCT) #前景の表示
  deleteAllSprite()
  setCanvasVisible(true)
  s = createSprite(PCT)
  setSpriteZOrder(s, 1)
  setSpriteRect(s,0,0,512,384, 0,0,512,384)
  drawCanvas()
end

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();  moveCamera(false)
end


#最初の自動開始イベント


#有効条件
!getFlag("BGM")

#実行内容
setFlag("BGM",true)
tuka_zenkei(104560)
setCanvasVisible(true)


#階段のイベント
#これを実行した後動けなくなる
x  = 16
y  = 29
playSound(11149)
darkwarp(x, y)

コメントする

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

コメント一覧

Material 71926 1 mini なとおとき(投稿日:2012/06/27 23:27, 履歴)
セーブした時用イベント

スクリプト
スプライトID=createSprite(画像ID)
setSpriteRect(スプライトID, 0, 0, 800, 600, 0, 0, 800, 600)
setCanvasVisible(true)
drawCanvas()

有効条件
!getCanvasVisible()


プレイヤーワープのイベント

スクリプト
fadeOut(0, 0, 0)
warp(マップID, X座標, Y座標)
スプライトID=createSprite(画像ID)
setSpriteRect(スプライトID, 0, 0, 800, 600, 0, 0, 800, 600)
setCanvasVisible(true)
drawCanvas()
fadeIn()


これで完璧かも
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/27 23:29, 履歴)
warp関数を入れる場所が
ポイントなのですね。
User icon mini 退会したユーザー(投稿日:2012/06/27 23:31, 履歴)
warp関数でスプライト消える筈じゃ・・・
まあいいや。ありがとうございます。
User icon mini 退会したユーザー(投稿日:2012/06/27 23:33, 履歴)
あ、直後に入れ直してるのか。
Material 71926 1 mini なとおとき(投稿日:2012/06/27 23:36, 履歴)
自分の知ってる知識だけで単純に考えてやったらできました^^;
User icon mini 退会したユーザー(投稿日:2012/06/26 23:38, 履歴)
そして見事に再発。
x  = 50
y  = 9
playSound(11149)
fadeOut(0, 0, 0);  warpEvent("playerCharacterEvent", x, y)
showImage(9404);  fadeIn()
moveCamera(true, getPlayerPosX(), getPlayerPosY())
fadeOut(0, 0, 0);  hideImage();  fadeIn()


スクリプト一緒なのに何が違ってこうなってるんだか・・・
わけがわからないよ。
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/26 23:43, 履歴)
showImage、hideImageをやめて
スプライトに統一してみるとか?
User icon mini 退会したユーザー(投稿日:2012/06/27 22:11, 履歴)
ダメでした・・・
x  = 50
y  = 9
playSound(11149)
addv("階層", 1)
waitTime(1)
fadeOut(0, 0, 0);  warpEvent("playerCharacterEvent", x, y)

  s = createSprite(9404)
  setSpriteZOrder(s, 2)
  setSpriteRect(s,0,0,512,384, 0,0,512,384)
  drawCanvas()

fadeIn()
moveCamera(true, getPlayerPosX(), getPlayerPosY())
waitTime(500) #←視覚的な意味で追加(関係ない筈)
fadeOut(0, 0, 0)

deleteSprite(s);  drawCanvas()

fadeIn()
User icon mini 退会したユーザー(投稿日:2012/06/27 22:24, 履歴)
一回削除してしまった検証用ゲームを再度作成。
バグ検証用
User icon mini 退会したユーザー(投稿日:2012/06/22 23:40, 履歴)
自己解決(?)。
なんかユーザー定義関数の外に出すと正常に動作するらしい。
原因が謎だと再発しそうで不安すぎるが・・・
User icon mini 退会したユーザー(投稿日:2012/06/22 23:31, 履歴)
if !getFlag("暗黒")

  case speakWithSelect(2,"いい","だめ", 
      "暗くするよ。")
    when 0
      fadeOut(0, 0, 0)
      setFlag("暗黒",true)
      setCanvasVisible(true)
      s = createSprite(104560)
      setSpriteRect(s, 0, 0, 512, 384, 0, 0, 512, 384)
      drawCanvas()
      fadeIn()
  end

else

  case speakWithSelect(2,"やってみろ","ヤメレ", 
      "暗くしたまま、ワープだ!")
    when 0
      fadeOut(0, 0, 0);  warpEvent("playerCharacterEvent", 8, 11);  showImage(9404);  fadeIn()
      moveCamera(true, getPlayerPosX(), getPlayerPosY())
      fadeOut(0, 0, 0);  hideImage();  fadeIn()
  end

end



こっちだとちゃんと動く・・・
どういうことなの・・・
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/06/22 11:19, 履歴)
スクリプトを新規ゲームに
コピーし実行してみましたが
正常に動作いたしました

何か別のところで
スクリプトのエラーなどが発生し
処理が止まっている可能性が
ある気がします
User icon mini 退会したユーザー(投稿日:2012/06/22 17:41, 履歴)
同じくコピーしてやってみたが、できました。
これ以外のイベントに異常はありませんか?
User icon mini 退会したユーザー(投稿日:2012/06/22 17:45, 履歴)
これ以外に、全く何もスクリプトを置いてませんけど。。
User icon mini 退会したユーザー(投稿日:2012/06/21 23:45, 履歴)
ありゃ。darkwarp関数の一部がはみ出して見えないorz
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();  moveCamera(false)
end