HTML5 Canvas游戏有错误,点击时第一个拼图块会变成不同的块
HTML5 Canvas game has bug where first puzzle piece changes to a different piece when clicked on?
我想我只需要对我正在开发的这款游戏有一双新的眼光。
这是一个滑动图像拼图(您将图像分成几块并以随机顺序显示它们,然后我删除拼图的单个部分,用户必须单击每个拼图块以移动它,从而将图像重新组合在一起)
完整代码在这里: https://github.com/Integralist/HTML5-Image-Slider-Game
我遇到的错误是你移动的第一个拼图块,如果你再次点击它 - 当它移回它刚刚来自的位置时 - 拼图块会变成不同的一块(在一个实例中,我注意到它正在更改为删除以启动游戏的拼图, 但这可能只是巧合)。
起初我认为问题出在异步的 setInterval 方法上(我在想,因为我在一个循环中,也许参考循环迭代被搞砸了,但我现在将相关的迭代传递到 setInterval 中,问题仍然发生,所以不可能是那样)。
更新:
我仍然认为问题与设置间隔有关。主要问题是,当我们开始将图像绘制到画布上时,原始的 x/y 坐标显然已经与我们预期的不同。我注意到,当我们单击同一拼图将其移回刚刚的位置时,保存我们要移动的拼图的坐标的对象是不正确的。我注意到 drawnOnCanvasX/Y 属性与它们应该的不同,并且它们现在与empty_space变量的 x/y 坐标匹配?这种情况不会一直发生的事实让我认为 setInterval 没有通过正确的对象从循环传递到在间隔上执行的函数?
任何帮助表示赞赏。
问题是因为我没有从随机数组中删除特定项目。
为了使游戏正常工作,我需要删除 1 个拼图,这允许其他拼图有一个可以移动到的空间。问题是我已经clearRect
了我想要的片段,但实际上并没有将其从阵列中删除。因此,当我循环查找数组中具有这些精确 X/Y 坐标的项目时,它正在查找应该删除的拼图块项目(并且因为删除的块是随机选择的,这就是为什么有时会首先通过循环找到该块,而其他时候会找到正确的块)。
基督是痛苦的。
- 而循环只设置php中输入字段中的第一个值
- 错误:$injector:modulerr模块错误(我的第一个SPA应用程序)
- IE11中的第二个调用取消了第一个Fetch API调用
- Javascript XMLHttpRequest——只有第一个POST请求有效
- 使用javascript或angularjs特定过滤器搜索字符串中第一个img标记的json值
- 将OnClick函数设置为<ul>,最后一个ul是擦除第一个ul-s
- RxJS油门行为;立即获取第一个值
- Angular UI网格:如何通过第一个UI网格中的按钮使第二个UI网格可见
- 选择多个实例中的第一个
- 如何在调用下一个请求之前完成第一个Ajax Get请求
- Lodash:返回对象的第一个键,该对象的值(即数组)中有一个给定的元素(即字符串)
- 看起来第一个console.log是'It’不太对
- 与杜兰达尔合作的第一个JavaScript项目.尝试从第三方 API 获取数据
- 节点发布错误对象的第一个“属性”
- Javascript:表单验证getElementById仅返回第一个id元素
- 仅将 CSS 规则应用于
中的第一个 ,而不分配类/ID - JS在隐藏未定义的值后仅从数组中返回第一个id的值
- 高图表,检测点是否在堆栈中的第一个
- json结果显示第一个值
- 我的设备后退按钮工作不正常,它转到第一个html,但返回到第二个html