为了账号安全,请及时绑定邮箱和手机立即绑定

使用 console.log() 从 HTML Canvas 检测形状、图像和鼠标溢出;

使用 console.log() 从 HTML Canvas 检测形状、图像和鼠标溢出;

阿波罗的战车 2022-06-09 10:47:27
我正在测试 HTML标签以在我的网站内为Games4Change<canvas></canvas>创建一个香草 JavaScript 游戏。当我使用 测试画布的宽度和高度时ctx.fillRect(955, 0, 5, 5);,我想知道如何使用 来检测 JavaScript 形状console.log();,因为它们的笔划/边框溢出或超出 HTML<canvas></canvas>边框的范围。此外,我想知道如何让 JavaScript 检测图像及其边界溢出 HTML<canvas></canvas>边框,console.log();因为我将切换到我的游戏的图像而不是形状。另外,如何使用 Javascript 检测鼠标光标是否超出 HTML<canvas></canvas>边框console.log();?HTML<canvas class="center" id="gameCanvas"></canvas>CSS#gameCanvas {    width: 960px;    height: 480px;    border: 5px solid rgba(52,52,52,1.00);/**    background-color: rgba(241,213,179,1.00);**/}香草 JavaScript//Gets the html canvas that displays the game and allows art/rendering of the game in 2 dimensional plane.let canvas = document.getElementById("gameCanvas");let ctx = canvas.getContext("2d");// Determine the size the canvas is being displayed   var width = canvas.clientWidth;   var height = canvas.clientHeight;console.log(canvas.clientWidth);console.log(canvas.clientHeight);//Clears all content everytime the game is reloaded by frame of the rectangular screen.ctx.clearRect(0, 0, 960, 480);ctx.fillStyle = "#FF0000";ctx.fillRect(955, 0, 5, 5);
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

声明画布后:


canvas.addEventListener("mouseout", console.log("mouse out"), false);

您只需要知道鼠标在画布上然后离开。


在你的画布元素中定义对象有点棘手,但本质上你需要一些东西来跟踪该对象的宽度和高度位置(如 x 和 y 坐标)。然后,您可以检查该位置是否超出了您硬定义的画布大小,例如:


if ((location.x < 0 || location.x > 960) || (location.y < 0 || location.y > 480)) {

console.log("i am outside");

}

当然,除了 0 和 960,您可以使该区域更小以考虑对象的大小,因此当边缘或角落退出画布时,它会记录“我在外面”。


我建议检查类似 vector.js 的东西来开始定义游戏对象的位置和运动。


查看完整回答
反对 回复 2022-06-09
  • 1 回答
  • 0 关注
  • 129 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信