Javascript 如何在特定位置更改光标?

Javascript 如何在特定位置更改光标?,javascript,html,canvas,Javascript,Html,Canvas,有两个图像。其中一幅是表面掩模。两张图片是背景级别。如何更改光标和使用曲面遮罩 黑色的正方形是完全运动的地方。它有自己的游标。 灰色正方形是局部运动的地方。所以它也有自己的游标 我有一个想法。为画布创建一个缓冲区并覆盖遮罩。但是我们每次都必须为mousemove调用GetPixelsColor。这个决定是不合理的 谁是相似的?谢谢。尝试以下方法: window.addEventListener('mousemove', draw, false); function draw(e) {

有两个图像。其中一幅是表面掩模。两张图片是背景级别。如何更改光标和使用曲面遮罩

黑色的正方形是完全运动的地方。它有自己的游标。 灰色正方形是局部运动的地方。所以它也有自己的游标

我有一个想法。为画布创建一个缓冲区并覆盖遮罩。但是我们每次都必须为mousemove调用GetPixelsColor。这个决定是不合理的

谁是相似的?谢谢。

尝试以下方法:

window.addEventListener('mousemove', draw, false);
function draw(e) {
    changeCursor(canvas, e);
}

function changeCursor(canvas, evt) {
    var rect = canvas.getBoundingClientRect();
    coords = {
      x: evt.clientX - rect.left,
      y: evt.clientY - rect.top
    };
    if(coords.x >= box.x && coords.x <= box.x+box.width && coords.y >= box.y && coords.y <= box.y+box.width){
        canvas.style.cursor = "crosshair";
    }
}
window.addEventListener('mousemove',draw,false);
功能图(e){
更改光标(画布,e);
}
函数changeCursor(画布,evt){
var rect=canvas.getBoundingClientRect();
坐标={
x:evt.clientX-rect.left,
y:evt.clientY-rect.top
};
如果(coords.x>=box.x&&coords.x=box.y&&coords.y请尝试以下操作:

window.addEventListener('mousemove', draw, false);
function draw(e) {
    changeCursor(canvas, e);
}

function changeCursor(canvas, evt) {
    var rect = canvas.getBoundingClientRect();
    coords = {
      x: evt.clientX - rect.left,
      y: evt.clientY - rect.top
    };
    if(coords.x >= box.x && coords.x <= box.x+box.width && coords.y >= box.y && coords.y <= box.y+box.width){
        canvas.style.cursor = "crosshair";
    }
}
window.addEventListener('mousemove',draw,false);
功能图(e){
更改光标(画布,e);
}
函数changeCursor(画布,evt){
var rect=canvas.getBoundingClientRect();
坐标={
x:evt.clientX-rect.left,
y:evt.clientY-rect.top
};

如果(coords.x>=box.x&&coords.x=box.y&&coords.y您的问题应该包括a我目前没有示例。我不知道如何正确操作。那么您可以澄清您的问题吗?我无法理解。如何在游戏中的特定位置更改光标并使用曲面贴图?您的问题应该包括a我没有目前的示例。我不知道如何正确操作。那么您能澄清您的问题吗?我无法理解。如何在游戏中的特定位置更改光标并使用曲面贴图?只需更改canvas cursor属性将更容易(更快)。
canvas.style.cursor=“move”
游戏和jQuery不会混合使用,因为jQuery的速度非常慢。但是我在画布上绘制(没有使用css)。您可能希望包含
else{canvas.style.cursor='default'}
太多了。@Anonymous您最好使用数据地图,而不是光栅地图。存储所有像素坐标将不必要地消耗内存。然后,如果您的所有形状都是方形的,那么在手之前生成此数据地图就很容易了。只需更改画布光标属性就更容易(更快)。
canvas.style.cursor=“move”
游戏和jQuery不会混合使用,因为jQuery的速度非常慢。但是我在画布上绘制(没有使用css)。您可能希望包含
else{canvas.style.cursor='default'}
也是。@Anonymous您最好使用数据地图,而不是光栅地图。存储所有像素坐标将不必要地消耗内存。然后在手之前生成此数据地图,如果您的所有形状都是方形的,这很容易。