私が取り組んでいるこのゲームには、新鮮な目が必要だと思います。
これはスライディング イメージ パズルです (画像を分割してランダムな順序で表示します。次に、パズルのピースを 1 つ削除します。ユーザーは各パズルのピースをクリックして移動し、画像を配置する必要があります。一緒に戻る)
完全なコードはこちら: https://github.com/Integralist/HTML5-Image-Slider-Game
私が抱えているバグは、移動した最初のパズルのピースにあります。もう一度クリックすると、元の位置に戻ると、パズルのピースが別のピースに変わります (あるインスタンスでは、ゲームを開始するために削除されたパズルのピースに変更されますが、それは単なる偶然かもしれません)。
最初は、問題は非同期の setInterval メソッドにあると考えていました (ループ内にいるため、参照ループの反復が台無しになっている可能性があると考えていましたが、現在、関連する反復を setInterval に渡し、問題は引き続き発生するため、そうではありません)。
更新:
問題は setInterval に関係していると思います。主な問題は、キャンバスに画像を描画し始めると、元の x/y 座標が明らかに期待したものから変更されていることです。同じパズルのピースをクリックして元の位置に戻すと、移動したいパズルのピースの座標を保持するオブジェクトが正しくないことに気付きました。 DrawOnCanvasX/Y プロパティに気付きました。それらが本来あるべきものと異なっており、それらが empty_space 変数の x/y 座標と一致するようになりましたか? これが常に発生するわけではないという事実は、 setInterval がループからインターバルで実行される関数に正しいオブジェクトを通過していないと思いますか?
どんな助けでも感謝します。