Ý tưởng: Tôi đang tạo một tập lệnh WebGL đơn giản (sử dụng ba.js tuyệt vời của mrdoob) cho phép người dùng điều khiển máy ảnh trong một thế giới các đối tượng. Chiếc máy ảnh này được cho là để mô phỏng máy ảnh bắn súng người đầu tiên truyền thống (tham khảo Team Fortress 2, chẳng hạn). Tức là, máy ảnh chỉ di chuyển khi di chuyển chuột.Xử lý chuyển động chuột kiểu máy ảnh trong Javascript (cho phép di chuyển chuột liên tục)
Vấn đề: trong Javascript, cách duy nhất để phát hiện chuyển động của chuột là nếu chính con trỏ di chuyển. Bằng cách so sánh, các trò chơi FPS không hiển thị con trỏ - chúng chỉ dựa trên chuyển động của máy ảnh khi di chuyển chuột. Vì vậy, bạn có thể di chuyển chuột của bạn trên tất cả các mousepad theo bất kỳ hướng nào và nó luôn hoạt động.
Trên trình duyệt mặc dù, vì chuyển động của máy ảnh dựa trên con trỏ, bạn không thể di chuyển nhưng cho đến nay. Khi con trỏ chạm vào cạnh của màn hình, người dùng không thể nhìn xa hơn theo hướng đó (ví dụ: bạn di chuyển chuột sang cạnh trái của màn hình, bạn không thể nhìn sang trái nữa).
Giải pháp: Tôi đã nghĩ đến hai giải pháp, nhưng cả hai giải pháp này đều không biết cách triển khai. Hoặc là
Sau khi di chuyển chuột, javascript sẽ đặt lại nó vào giữa màn hình. Bằng cách đó, sau mỗi lần di chuyển chuột, người chơi được tự do di chuyển theo bất kỳ hướng nào. Vấn đề với điều này là, dựa trên nghiên cứu tôi đã thực hiện, Javascript không thể kiểm soát vị trí của chuột của người dùng (dễ hiểu, vì nó sẽ là một phiền toái không thể so sánh trên các trang web ác tính).
Hoặc, chuột "quấn" quanh màn hình. Có nghĩa là, khi người dùng đến một cạnh của màn hình, con chuột sẽ đơn giản tiếp tục sang phía bên kia của màn hình. (xem: http://www.digicowsoftware.com/detail?_app=Wraparound) Tuy nhiên, nó xuất hiện rằng điều này cũng không phải là một khả năng vốn có của javascript, nhưng thay vào đó chỉ là một cái gì đó một chương trình bên thứ ba có thể giải quyết.
Vì vậy, vấn đề có hợp lý không? Nếu vậy, có cách nào tôi có thể thực hiện các giải pháp trên, hoặc là có một số khác tôi đang thiếu?
Thú vị câu hỏi. Không bao giờ đánh giá thấp F11, xem toàn màn hình. :-) –
@zourtney Toàn màn hình không giải quyết được sự cố vì: 1) Chuột bị giới hạn ở giới hạn màn hình; 2) với một thiết lập multimonitor chuột có thể nhận ra khu vực trình duyệt. Kiểm tra phản ứng của tôi ở dưới đó. – Chiguireitor
@Chuộc giả, vâng, tôi nhận ra toàn màn hình một mình là không đủ cho một FPS phù hợp vì những lý do bạn đề cập đến. Tôi đã không nhận ra có một thông số dự thảo cho việc này. Cảm ơn vì đã dạy tôi điều gì đó ngày hôm nay. Câu trả lời của bạn đã upvote của tôi :-) Tôi nghĩ rằng tất cả chúng ta đồng ý loại yêu cầu sẽ chỉ nhận được * nhiều hơn * phổ biến như công nghệ web trở nên phổ biến hơn –