ランキング機能でバグ出てしまいます><(質問掲示板)
投稿: ugonight
投稿:2012/09/18 17:16:18(最新:2012/09/22 12:26:22)
勝手ながら「因数分解の練習(キラッ」というゲームを非公開させていただき
ランキング機能を追加しようとしているのですが
エラーが出てしまって手詰まりしてしまいました><
一応、全体のシーンは公開しておいたのですが
具体的な症状は「ランキング」チャプターの
の部分を呼び出したときに
というエラーが出てしまうといったのもです。
余裕があるときで構わないので、見てくれるとありがたいです><
ツイート
ランキング機能を追加しようとしているのですが
エラーが出てしまって手詰まりしてしまいました><
一応、全体のシーンは公開しておいたのですが
具体的な症状は「ランキング」チャプターの
#名前登録 def hiscore() speak("おめでとうございます!\n記録を更新しました!") case speakWithSelect(2,"はい","いいえ", "ハイスコアを記録しますか?") when 0 #「,」で区切った文字列を"DispKeySetting"に引数として設定 setVariable("DispKeySetting", "登録する名前を入力しえください,15,青,24103,名無しさん") #第1引数:画面上部の表示文字列 #第2引数:入力可能文字数(最大24) #第3引数:背景色設定(白、黒、赤、桃、紫、青、緑、黄のいずれか) #第4引数:シーン2のID番号 #第5引数:キャンセルした場合の入力結果 changeScene(19491) #スクリーンキーボードへ end #記録を更新したか確認 def rankh() if isLogin() waitTime(1000) case getVariable("timeUp") when "10秒" if getVariable("taCount") > loadGameData("10s_score") hiscore() end when "100秒" if getVariable("taCount") > loadGameData("100s_score") hiscore() end when "3分" if getVariable("taCount") > loadGameData("3m_score") hiscore() end when "5分" if getVariable("taCount") > loadGameData("5m_score") hiscore() end when "10分" if getVariable("taCount") > loadGameData("10m_score") hiscore() end end end end
の部分を呼び出したときに
Error #1069 null
というエラーが出てしまうといったのもです。
余裕があるときで構わないので、見てくれるとありがたいです><
コメントする
コメントするには、ログインする必要があります。
コメント一覧
すみません><
またエラーが出てしましました…
スクリーンキーボードから戻ってくるときに
というエラーが発生します。
おそらくline()のことなのだと思いますが、どこを直せばいいかわかりません…
またエラーが出てしましました…
スクリーンキーボードから戻ってくるときに
setSpriteRotationに不正なハンドルが指定されました。ハンドル1は無効です。 line : 15 setSpritePositionに不正なハンドルが指定されました。ハンドル1は無効です。 line : 16 setSpritePositionに不正なハンドルが指定されました。ハンドル1は無効です。 line : 17 setSpriteRotationに不正なハンドルが指定されました。ハンドル1は無効です。 line : 15 setSpritePositionに不正なハンドルが指定されました。ハンドル1は無効です。 line : 16 setSpritePositionに不正なハンドルが指定されました。ハンドル1は無効です。 line : 17
というエラーが発生します。
おそらくline()のことなのだと思いますが、どこを直せばいいかわかりません…
line[g]の中身が無いときに、createSprite()でスプライトを生成して、line[g]の中に数値が入ります。
ですが、「スクリーンキーボード」から戻ってきたときに、deleteAllSpriteでスプライトをすべて削除しています。
そのとき、スプライトが消えてもline[g]の中の数値はそのままです。
よって、line()の関数をもう一度通ったときに、
line[g]の中身があるため、スプライトが無いのにスプライトが生成されず、「setSpritePosition()でスプライトID(=ハンドル1)がないですよ」というエラーが出てしまいます。
たぶん、こんな感じだと思います。
えっと…
「スクリーンキーボード」から戻ってきたときに、deleteAllSpriteでスプライトをすべて削除しています。
とのことですが、どこで消してるのかよくわからないです…
ほんとは消すつもりはないのですけど、具体的にどこで消してしまっているかわかりますでしょうか…?
deleteAllSprite関数を使用しております。
ただし、
deleteAllSprite関数に関係なく
シーンの移動後に
各シーンのスプライトIDは
リセットされるため、
どちらにしても再度生成する必要があります。
このとき、line関数では通常変数"line"に
既に使用された線引きIDに値が入っていると
正常に生成されない仕様となっているようなので、
スクリーンキーボードに入る前と
スクリーンキーボードに入った後で、
別の線引きIDを引数に設定する必要があります。
シーン移動後は、どちらにしろ消えるのですね。
シーンを使ったこと無かったので知らなかったです・・・
ご迷惑をおかけしてすみませんでした><
線引きIDというのは
の線番号のことでしょうか…?
一応「chapter0」を
という風に直したのですが
同じエラーが出てきました><