javascript - 将边距应用于 Canvas 时,HTML5 Canvas 游戏将无法运行

标签 javascript html animation

我一直在尝试以下 game .

我想添加 margin: 0 auto 但当我应用任何类型的 marginpadding 等时,游戏就会停止工作。

在此example我添加了 margin: 200px;,您会发现游戏无法运行。

不确定为什么。

最佳答案

由于移动 Canvas ,命中检测代码会关闭,因为它使用 pageX、pageY 值,这些值是相对于页面的值。您可以使用 offsetX、offsetY 值获取相对于 Canvas 本身的位置,这应该可以让您更好地进行命中检测,而无需进行额外的计算

function btnClick(e) {
    // Variables for storing mouse position on click
    var mx = e.offsetX,
    my = e.offsetY;

您可能还需要在代码的其他部分和/或其他计算中执行此操作,以确保命中检测正确

关于javascript - 将边距应用于 Canvas 时,HTML5 Canvas 游戏将无法运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25278756/

相关文章:

javascript - 如何在 Javascript 和 HTML 中按空格分割字符串?

css - 无法使用 CSS 正确定位输入元素

javascript - 想要在 Div 中加载数据后执行脚本

image - 与图像序列相比, Sprite 表的优缺点是什么?

ios - 为什么这个简单的不透明动画在 SwiftUI 中不起作用?

javascript - 使用复选框操作标签

javascript - 未添加 Jquery 类

javascript - js中不同的动画效果

javascript - 使 Bootstrap 响应基于父 div 的最佳方法?

javascript - 如何从这些 JSON 对象中过滤掉值