我想我只需要对我正在开发的这款游戏重新审视。
这是一个滑动图像拼图(您将图像分成几块并以随机顺序显示它们,然后我删除一块拼图,用户必须单击每个拼图来移动它,从而放置图像重新走到一起)
完整代码在这里:https ://github.com/Integralist/HTML5-Image-Slider-Game
我遇到的错误是在您移动的第一个拼图上,如果您再次单击它 - 当它移回它刚刚来自的位置时 - 拼图变为另一块(在一个实例中,我注意到它是更改为启动游戏而被移除的拼图,但这可能只是巧合)。
起初我认为问题出在异步的 setInterval 方法上(我在想,因为我在一个循环中,可能参考循环迭代搞砸了,但我现在将相关迭代传递给 setInterval 和问题仍然存在,所以不可能那样)。
更新:
我仍然认为问题与 setInterval 有关。主要问题是当我们开始将图像绘制到画布上时,原始 x/y 坐标显然已经与我们预期的有所不同。我注意到,当我们单击同一个拼图以将其移回刚刚所在的位置时,保存我们要移动的拼图坐标的对象是不正确的。我注意到 drawOnCanvasX/Y 属性与它们应有的不同,并且它们现在匹配 empty_space 变量的 x/y 坐标?这种情况并非一直发生的事实让我认为 setInterval 没有通过正确的对象从循环传递到在间隔上执行的函数?
任何帮助表示赞赏。