2010-04-11 35 views
7

Im sử dụng JavaScript, yếu tố canvas HTML5 và WebGL để tạo trò chơi 3D đơn giản trong chế độ xem người đầu tiên để giải trí.Quản lý chuột trong trò chơi JavaScript

Lý tưởng nhất, tôi muốn kiểm soát chuyển động của mình bằng cách sử dụng bàn phím để di chuyển và chuột để nhìn xung quanh, giống như bạn thường làm trong trò chơi FPS. Như bạn có thể hiểu, có một số giới hạn này trong trình duyệt, kể từ khi con chuột không thể được chụp:

  • Khi sử dụng các sự kiện onmousemove, không có phong trào sẽ tiếp tục được phát hiện khi con trỏ chuột đến biên giới của màn hình của tôi (có nghĩa là tôi sẽ không thể chạy trong một vòng tròn chẳng hạn)
  • thấy di chuyển chuột trên màn hình không phải là kết thúc của thế giới, nhưng nó là một chút khó chịu

Từ những gì tôi biết , không thể ẩn con chuột cũng như đặt vị trí của nó trong JavaScript. Do đó, câu hỏi của tôi là:

Nếu không thể làm được điều đó, chúng ta có thể làm gì để có được trải nghiệm chơi game trên chuột khi duyệt trên trình duyệt?

Và hiện tại, tôi đang sử dụng API hiện tại. Không phải "những gì có thể được thay đổi trong một số tiêu chuẩn để làm cho cuộc sống dễ dàng hơn". Ngoài ra, tôi nhận ra rằng tôi có thể sử dụng bàn phím để nhìn xung quanh, nhưng sau đó chúng tôi trở lại vào năm 1995 khi Quake thực sự chơi như thế. Và tất nhiên tôi biết rằng sẽ dễ dàng hơn khi viết một ứng dụng máy tính để bàn hoặc sử dụng Flash ít nhất, nhưng tôi đang cố gắng đẩy giới hạn của JavaScript ở đây.

Ngoài những điều đó, đề xuất của bạn là gì? Bất kỳ loại tài liệu tham khảo, trò chơi hiện tại, ý tưởng điên rồ, hack hoặc thậm chí là giải pháp cụ thể của trình duyệt sẽ được đánh giá cao.

+1

Tôi tự hỏi làm thế nào để http://code.google.com/p/quake2-gwt-port/ nhìn xung quanh, tôi đã không thực sự cố gắng nó bởi vì tôi CBA để có được một phiên bản phát triển của Chrome, nhưng tôi đoán họ có một cái gì đó như thế –

+2

Bạn có thể ẩn con trỏ bằng 'body {cursor: url (đường dẫn đến/blank.gif);}' ... sẽ làm việc trong tất cả các trình duyệt phong nha, và tôi đoán bạn có thể làm cho con trỏ một chút tinh tế hơn trong IE bằng cách sử dụng 'con trỏ: crosshair'. – James

+0

Dự án động đất trông rất thú vị, tôi sẽ cố gắng xem họ đang làm gì. Và cảm ơn các ý tưởng ẩn con trỏ! – Jakob

Trả lời

2

Tôi đã thực hiện một số thử nghiệm với tính năng di chuột cho một trò chơi, theo như tôi nhớ thì đó chỉ là Opera mà tôi đã không thực hiện hành xử, vì vậy tôi đã cho nó thánh giá thay thế. Một điểm quan trọng là một số trình duyệt sẽ hiển thị một hình ảnh con trỏ hoàn toàn vô hình như một hộp đen, nhưng chỉ với một điểm ảnh gần như vô hình nó sẽ hoạt động. Vui lòng lấy phần di chuột và tệp con trỏ. http://ebusiness.hopto.org/iimdtdt/

Tôi đã suy nghĩ một chút về phần nhìn xung quanh bản thân mình, vì chuyển động lên/xuống dễ dàng, vì bạn sẽ giới hạn điều này, và tất cả những gì bạn phải làm là đảm bảo rằng nắp được đồng bộ hóa với nắp di chuyển chuột. Đối với một phần ngang, tôi đề nghị bạn hãy thử mẫn cảm với độ nhạy, khi con chuột gần cạnh của độ nhạy màn hình nên đi lên nó hướng về phía cạnh màn hình, và xuống theo hướng đi từ mép màn hình. Tôi đã không thử phương pháp này, vì vậy tôi không thể nói nó sẽ thực sự hoạt động tốt như thế nào, nhưng nó sẽ giúp giữ chuột ở khu vực giữa ngay cả khi người dùng xoay vòng nhiều hơn một cách khác.

Chúc bạn may mắn với dự án, nghe có vẻ thú vị.

+0

Hm .. Tôi không nghĩ đến loại nhạy cảm động đó. Tôi hơi hoài nghi, vì nó có thể cảm thấy khá khác với những gì được sử dụng, nhưng hoàn toàn xứng đáng một shot! – Jakob

Các vấn đề liên quan