我正在构建HTML5游戏,并且尝试将鼠标指针放在特定事件上的某个控件上,以便在特定方向上移动始终具有相同的结果。这可能吗?
我正在构建HTML5游戏,并且尝试将鼠标指针放在特定事件上的某个控件上,以便在特定方向上移动始终具有相同的结果。这可能吗?
Answers:
因此,我知道这是一个老话题,但是我首先要说这是不可能的。当前最接近的是将鼠标锁定在单个位置,并跟踪其x和y的变化。这个概念已经被Chrome和Firefox所采用。它由所谓的“ 鼠标锁”管理,点击逃逸将使其中断。通过简短的阅读,我认为其想法是将鼠标锁定在一个位置,并报告类似于单击和拖动事件的运动事件。
这是发行文档:
FireFox:https : //developer.mozilla.org/zh-CN/docs/Web/API/Pointer_Lock_API
Chrome:http : //www.chromium.org/developers/design-documents/mouse-lock
这是一个非常简洁的演示:http : //media.tojicode.com/q3bsp/
您无法使用javascript移动鼠标指针。
如果可以的话,请考虑一秒钟的含义;)
可以通过一个简单的http调用AJAX将其作为CGI脚本运行-随便将鼠标移动到的坐标,例如:
http://localhost:9876/cgi/mousemover?x=200&y=450
PS:对于任何问题,都有数百个借口,说明为什么以及如何-不能,不应该-要做。会实现的。
我想如果不使用真实的(系统)鼠标光标,就可以将鼠标光标放置到屏幕的给定区域。
例如,您可以创建一个图像来代替光标,处理一个事件,该事件在检测到鼠标进入场景时将系统光标的样式设置为“ none”(sceneElement.style.cursor = 'none'
),然后显示一个隐藏的图像元素根据预定义的轴/边界框平移将光标作为场景中您喜欢的任何位置。
这样,无论您如何移动真实光标,翻译方法都可以将图像光标保持在所需的位置。
好问题。这实际上是Javascript浏览器API中缺少的东西。我还与我的团队一起开发WebGL游戏,我们需要此功能。我在Firefox的bugzilla上打开了一个问题,以便我们可以开始讨论使用允许鼠标锁定的API的可能性。这将对所有HTML5 / WebGL游戏开发人员很有用。
如果愿意,请过来发表您的反馈意见,并发表意见:
https://bugzilla.mozilla.org/show_bug.cgi?id=630979
谢谢!
您可以检测鼠标指针的位置,然后移动网页(相对于正文位置),以便它们悬停在您希望它们单击的内容上。
例如,您可以将此代码粘贴到浏览器控制台中的当前页面上(然后刷新)
var upvote_position = $('#answer-12878316').position();
$('body').mousemove(function (event) {
$(this).css({
position: 'relative',
left: (event.pageX - upvote_position.left - 22) + 'px',
top: (event.pageY - upvote_position.top - 35) + 'px'
});
});
document.getElementByID('thingtoclick').click();
您不能移动鼠标,但可以锁定它。注意:必须在click事件中调用requestPointerLock。
小例子:
var canvas = document.getElementById('mycanvas');
canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock || canvas.webkitRequestPointerLock;
canvas.requestPointerLock();
文档和完整的代码示例:
https://developer.mozilla.org/zh-CN/docs/Web/API/Pointer_Lock_API
难道不能简单地通过获取鼠标指针的实际位置然后基于此补偿来计算和补偿Sprite / Scene鼠标动作来完成?
例如,您需要鼠标指针位于底部中央,但它位于左上方;隐藏光标,使用移动的光标图像。移位光标移动并映射鼠标输入以匹配重新定位的光标精灵(或“控件”)单击。当/如果达到边界,则重新计算。如果/当光标实际到达您想要的点时,请取消补偿。
免责声明,不是游戏开发商。