Tôi đang xây dựng một trò chơi HTML5 và tôi đang cố gắng đưa con trỏ chuột lên một điều khiển nhất định trên một sự kiện cụ thể để việc di chuyển theo một hướng cụ thể luôn có kết quả tương tự. Điều này có thể không?
Tôi đang xây dựng một trò chơi HTML5 và tôi đang cố gắng đưa con trỏ chuột lên một điều khiển nhất định trên một sự kiện cụ thể để việc di chuyển theo một hướng cụ thể luôn có kết quả tương tự. Điều này có thể không?
Câu trả lời:
Vì vậy, tôi biết đây là một chủ đề cũ, nhưng trước tiên tôi sẽ nói nó không thể. Điều gần nhất hiện tại là khóa chuột vào một vị trí duy nhất và theo dõi sự thay đổi trong x và y của nó. Khái niệm này đã được thông qua bởi - có vẻ như - Chrome và Firefox. Nó được quản lý bởi thứ gọi là Khóa chuột và nhấn thoát sẽ phá vỡ nó. Từ bài đọc ngắn gọn của tôi , tôi nghĩ ý tưởng là nó khóa chuột vào một vị trí và báo cáo các sự kiện chuyển động tương tự như các sự kiện nhấp và kéo.
Đây là tài liệu phát hành:
FireFox: https://developer.mozilla.org/en-US/docs/Web/API/Pulum_Lock_API
Chrome: http://www.chromium.org/developers/design-document/mouse-lock
Và đây là một minh chứng khá gọn gàng: http://media.tojicode.com/q3bsp/
Bạn không thể di chuyển con trỏ chuột bằng javascript.
Chỉ cần nghĩ về những tác động trong một giây, nếu bạn có thể;)
Chạy nó dưới dạng tập lệnh CGI thông qua một cuộc gọi http đơn giản, AJAX, bất cứ điều gì - với tọa độ bạn muốn di chuyển chuột đến, ví dụ:
http://localhost:9876/cgi/mousemover?x=200&y=450
Tái bút: Đối với bất kỳ vấn đề nào, có hàng trăm lý do để giải thích tại sao, và làm thế nào - không thể, và không nên - được thực hiện .. Nhưng trong vũ trụ vô tận này, đó thực sự chỉ là vấn đề quyết tâm - cho dù BẠN sẽ làm cho nó xảy ra.
Tôi sẽ tưởng tượng bạn có thể hoàn thành việc đặt con trỏ chuột đến một khu vực nhất định trên màn hình nếu bạn không sử dụng con trỏ chuột thực (hệ thống).
Chẳng hạn, bạn có thể tạo một hình ảnh để hành động thay cho con trỏ của bạn, xử lý một sự kiện khi phát hiện ra trình điều khiển chuột vào cảnh của bạn, đặt kiểu trên con trỏ hệ thống thành 'none' (sceneElement.style.cursor = 'none'
), sau đó sẽ đưa ra một yếu tố hình ảnh ẩn như một con trỏ ở bất cứ nơi nào bạn muốn trong cảnh dựa trên bản dịch trục / hộp giới hạn được xác định trước.
Bằng cách này, bất kể bạn di chuyển con trỏ thực như thế nào, phương pháp dịch của bạn sẽ giữ con trỏ hình ảnh của bạn bất cứ nơi nào bạn cần.
chỉnh sửa: một ví dụ trong jsFiddle bằng cách sử dụng biểu diễn hình ảnh và di chuyển chuột bắt buộc
Câu hỏi tuyệt vời. Đây thực sự là một cái gì đó thiếu từ API trình duyệt Javascript. Tôi cũng đang làm việc với một trò chơi WebGL với nhóm của mình và chúng tôi cần tính năng này. Tôi đã mở một vấn đề trên bugzilla của Firefox để chúng ta có thể bắt đầu nói về khả năng có API để cho phép khóa chuột. Điều này sẽ hữu ích cho tất cả các nhà phát triển trò chơi HTML5 / WebGL ngoài kia.
Nếu bạn thích, hãy ghé qua và để lại nhận xét với phản hồi của bạn và nêu lên vấn đề:
https://ormszilla.mozilla.org/show_orms.cgi?id=630979
Cảm ơn!
Bạn có thể phát hiện vị trí của con trỏ chuột và sau đó di chuyển trang web (với vị trí cơ thể tương đối) để chúng di chuột qua những gì bạn muốn chúng nhấp vào.
Ví dụ: bạn có thể dán mã này trên trang hiện tại trong bảng điều khiển trình duyệt của bạn (và làm mới sau đó)
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();
Bạn không thể di chuyển một con chuột nhưng có thể khóa nó. Lưu ý: rằng bạn phải gọi requestPulumLock trong sự kiện nhấp chuột.
Ví dụ nhỏ:
var canvas = document.getElementById('mycanvas');
canvas.requestPointerLock = canvas.requestPointerLock || canvas.mozRequestPointerLock || canvas.webkitRequestPointerLock;
canvas.requestPointerLock();
Tài liệu và ví dụ mã đầy đủ:
https://developer.mozilla.org/en-US/docs/Web/API/Pulum_Lock_API
Bạn không thể di chuyển con trỏ chuột bằng javascript và do đó vì lý do bảo mật rõ ràng. Cách tốt nhất để đạt được hiệu ứng này là thực sự đặt điều khiển dưới con trỏ chuột.
Điều này không thể được thực hiện đơn giản bằng cách lấy vị trí thực tế của con trỏ chuột sau đó tính toán và bù các hành động chuột sprite / cảnh dựa trên phần bù này?
Chẳng hạn, bạn cần con trỏ chuột ở giữa, nhưng nó nằm trên cùng bên trái; ẩn con trỏ, sử dụng một hình ảnh con trỏ thay đổi. Thay đổi chuyển động con trỏ và nhập chuột ánh xạ để khớp với các lần nhấp sprite (hoặc 'control') được định vị lại khi nhấp chuột khi / nếu giới hạn được nhấn, tính toán lại. Nếu / khi con trỏ thực sự chạm đến điểm bạn muốn, hãy xóa phần bù.
Từ chối trách nhiệm, không phải là một nhà phát triển trò chơi.