2012-04-26 3 views
0

私は、私が取り組んでいるこのゲームで目の新鮮なセットが必要だと思う。HTML5キャンバスゲームには、クリックすると最初のパズルピースが別のピースに変わるバグがありますか?

これは、画像を分割してランダムな順序で表示するスライド画像パズルです(パノラマを1枚取り除くと、各パズルピースをクリックして移動します)。したがって、完全なコードはここにある)戻って一緒に

を画像を置く:https://github.com/Integralist/HTML5-Image-Slider-Game

私がいるバグは、あなたが再びそれをクリックすると、あなたは、移動する最初のパズルピースの上にある - それは位置に戻りそれはちょうどから来た - パズルピースは別の部分に変更されます(私はそれがゲームを開始するために削除されたパズルピースに変化していることに気づいたが、それはちょうど偶然かもしれない)。

最初は、非同期のsetIntervalメソッドで問題が発生していると思っていました(私はループの内部にあるため、参照ループの反復が乱れていたと思っていましたが、関連する繰り返しを渡していますsetIntervalに引き続き問題が発生するため、それはできません)。

UPDATE:
私はまだ問題がのsetIntervalとは何かだと思います。主な問題は、元のx/y座標が当然予想されるものから変更されたキャンバスに画像を描画し始めるときです。私は、同じパズルピースをクリックして直前の位置に戻すと、移動したいパズルピースの座標を保持しているオブジェクトが正しくないことに気付きました。私はdrawnOnCanvasX/Yプロパティに気付きました彼らは今あるべきものと異なっていて、今はempty_space変数のx/y座標に一致していますか?これが常に起こらないという事実は、setIntervalが正しいオブジェクトをループからそのインターバルで実行する関数に渡していないと思うのですか?

助けてください。

答えて

0

問題は、ランダム化された配列から特定の項目を削除しなかったためです。

ゲームが機能するためには、1個のパズルピースを取り除く必要がありました。これにより、他のピースには移動できるスペースがあります。問題は、clearRectが欲しかったのですが、実際にはアレイから削除していないことでした。だから私は、それらの正確なX/Y座標を持っていた配列内のアイテムを見つけるためにループしていたとき、削除されているはずのパズルピースアイテムを見つけ出していました(そして削除されたピースがランダムに選ばれたので、ピースはループを介して最初に見つけられ、他の時は正しいピースが見つかる)。

苦しかったキリスト。

関連する問題