ランキング機能でバグ出てしまいます><(質問掲示板)
投稿:
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」を
#一度シーンを読み込んだことがあるなら if getVariable("start") setVariable("lines", getVariable("lines") + 1) line(getVariable("lines"),64,200,164,200) rankw() else #テキスト表示領域を用意します。 setTextFontSize(30) setVariable("textID", createText(64, 64, 300, 35)) setVariable("textID2", createText(64, 64 + 100, 100, 35)) setVariable("textID3", createText(64 + 110, 64 + 100, 100, 35)) setVariable("textID4", createText(400, 200, 100, 35)) setVariable("textID5", createText(400, 300, 200, 35)) setVariable("textID6", createText(64, 500, 200, 35)) setVariable("textID7", createText(265, 500, 300, 35)) makeQuestion() #setText(getVariable("textID2"), toString(getVariable("a"))) #setText(getVariable("textID3"), toString(getVariable("b"))) #setText(getVariable("textID4"), "正解!") setVariable("stb", 0) setVariable("tba", 0) setVariable("tbb", 0) setText(getVariable("textID2"), toString(getVariable("tba"))) setText(getVariable("textID3"), toString(getVariable("tbb"))) setVariable("lines", 0) line(getVariable("lines"),64,200,164,200) #line(0,165,200,265,200) setVariable("count", 0) setFlag("timeAttack", false) setVariable("taCount", 0) setVariable("time", 10000) setVariable("timeUp", "10秒") setText(getVariable("textID6"), "全体:" + toString(getVariable("count")) + "問") setFlag("start", true) endという風に直したのですが
同じエラーが出てきました><