2010-04-11 6 views
7

Im usando JavaScript, el lienzo de elementos HTML5 y WebGL para hacer un simple juego en 3D en primera persona por diversión.gestión del ratón en los juegos de JavaScript

Idealmente, me gustaría controlar mis movimientos mediante el uso del teclado para mover y el ratón para mirar a su alrededor, como se suele hacer en FPS-juegos. Como podrán comprender, hay algunos límites a este en el navegador, ya que el ratón no puede ser capturado:

  • Cuando se utiliza el evento onmousemove, no se detectará el movimiento adicional cuando el puntero del ratón llega al borde de la pantalla (lo que significa que no voy a ser capaz de correr en un círculo por ejemplo)
  • al ver el movimiento del ratón por la pantalla no es el fin del mundo, pero es un poco molesto

por lo que sé , es imposible ocultar el mouse y establecer su posición en JavaScript. Por lo tanto, mi pregunta es la siguiente:

Si nosotros no podemos a esas cosas, ¿qué podemos hacer con el fin de acercarse a la experiencia de juego de escritorio cuando se trata del ratón en el navegador?

y me refiero en este momento, utilizando las API actuales. No "lo que podría cambiarse en algunos estándares para facilitar la vida". Además, me doy cuenta de que podría usar el teclado para mirar alrededor, pero luego volvemos en 1995 cuando Quake se jugó de esa manera. Y, por supuesto, sé que sería más fácil escribir una aplicación de escritorio o usar Flash al menos, pero estoy tratando de impulsar los límites de JavaScript aquí.

Aparte de esas cosas, ¿cuáles son sus sugerencias? Cualquier tipo de referencia, juego existente, idea loca, truco o incluso solución específica del navegador sería apreciada.

+1

Me pregunto cómo http://code.google.com/p/quake2-gwt-port/ qué mirar a su alrededor, no he hecho probado porque CBA para obtener una versión de desarrollo de Chrome, pero yo creo que tienen algo por el estilo –

+2

puede ocultar el cursor con 'body {cursor: url (ruta/a/blank.gif);}' ... que Funcionará en todos los navegadores decentes, y supongo que puede hacer que el cursor sea un poco más sutil en IE usando 'cursor: crosshair'. – James

+0

El proyecto del terremoto parece realmente interesante, intentaré ver qué están haciendo. ¡Y gracias por el cursor que oculta ideas! – Jakob

Respuesta

2

He hecho algunos experimentos con mousehiding para un juego, por lo que recuerdo, fue solo Opera que no me comporté, así que le di la cruz. Un punto crucial es que algunos navegadores mostrarán una imagen del cursor completamente invisible como una caja negra, pero con solo un píxel casi invisible funcionará. Siéntase libre de tomar la parte de mousehiding y el archivo del cursor. http://ebusiness.hopto.org/iimdtdt/

He pensado un poco en la parte de mirar alrededor, para el movimiento arriba/abajo es fácil, ya que de todos modos limitarás esto, y todo lo que tienes que hacer es asegurarte de que la tapa esté sincronizada con el gorro de movimiento del mouse. Para la parte lateral, sugiero que intente jugar con la sensibilidad, cuando el mouse se acerca al borde de la pantalla la sensibilidad debe subir en la dirección hacia el borde de la pantalla, y hacia abajo en la dirección alejada del borde de la pantalla. No he probado este método, por lo que no puedo decir qué tan bien funcionará realmente, pero debería ayudar a mantener el mouse en el área media incluso si el usuario gira más en una dirección que en la otra.

Buena suerte con el proyecto, suena interesante.

+0

Hm .. No pensé en ese tipo de sensibilidad dinámica. Soy un poco escéptico, ya que podría ser bastante diferente de lo que uno está acostumbrado, ¡pero vale la pena intentarlo! – Jakob

Cuestiones relacionadas