2010-04-11 14 views
7

Im utilizzando JavaScript, l'elemento canvas HTML5 e WebGL per creare un semplice gioco 3D in prima persona per divertimento.Gestione del mouse nei giochi JavaScript

Idealmente, mi piacerebbe controllare il mio movimento usando la tastiera per spostarsi e il mouse per guardarsi attorno, come fai di solito nei giochi FPS. Come probabilmente si capisce, ci sono dei limiti a questa nel browser, dal momento che il mouse non posso essere catturato:

  • Quando si utilizza l'evento onmousemove, verrà rilevato nessun ulteriore movimento quando il puntatore del mouse raggiunge il confine del mio schermo (il che significa che non sarò in grado di eseguire in un cerchio, per esempio)
  • Vedendo il movimento del mouse sullo schermo non è la fine del mondo, ma è un po 'fastidioso

da quello che so , è impossibile nascondere il mouse e impostare la sua posizione in JavaScript. Quindi, la mia domanda è questa:

Se smussiamo a quelle cose, che cosa possiamo fare per avvicinarsi alla esperienza di gioco desktop quando si tratta di mouse nel browser?

E intendo in questo momento, utilizzando le API correnti. Non "ciò che potrebbe essere cambiato in alcuni standard per semplificare la vita". Inoltre, mi rendo conto che potrei usare la tastiera per guardarmi intorno, ma poi siamo tornati nel 1995 quando Quake è stato effettivamente suonato in quel modo. E ovviamente so che sarebbe più facile scrivere un'applicazione desktop o usare almeno Flash, ma sto cercando di spingere qui i limiti di JavaScript.

Oltre a queste cose, quali sono i tuoi suggerimenti? Sarebbe apprezzato qualsiasi tipo di riferimento, gioco esistente, idea pazza, hack o anche una soluzione specifica per browser.

+1

Mi chiedo come si fa http://code.google.com/p/quake2-gwt-port/ guardandosi intorno, non ho davvero provato perché I CBA ha una versione di sviluppo di Chrome, ma suppongo che abbiano qualcosa di simile –

+2

Puoi nascondere il cursore con 'body {cursor: url (percorso/a/blank.gif);}' ... quello Lavorerò con tutti i browser decenti, e immagino che tu possa rendere il cursore un po 'più sottile in IE usando 'cursor: crosshair'. – James

+0

Il progetto del terremoto sembra davvero interessante, cercherò di vedere cosa stanno facendo. E grazie per il cursore che nasconde le idee! – Jakob

risposta

2

Ho fatto alcuni esperimenti con la ricerca del mouse per un gioco, dal momento che ricordo che era solo Opera che non mi comportavo, quindi ho dato invece la croce. Un punto cruciale è che alcuni browser visualizzeranno un'immagine del cursore completamente invisibile come una scatola nera, ma con un solo pixel quasi invisibile funzionerà. Sentiti libero di prendere la parte mousehiding e il file del cursore. http://ebusiness.hopto.org/iimdtdt/

ho pensato un po 'su l'aspetto intorno parte me stesso, per la up/down movimento è facile, dal momento che si coronare questo comunque, e tutto quello che dovete fare è quello di fare in modo che il tappo è in sincronia con il cappuccio del movimento del mouse. Per la parte laterale, ti suggerisco di provare a interferire con la sensibilità, quando il mouse si avvicina al bordo della sensibilità dello schermo dovrebbe andare verso di essa verso il bordo dello schermo, e verso il basso in direzione opposta al bordo dello schermo. Non ho provato questo metodo, quindi non posso dire quanto funzionerà effettivamente, ma dovrebbe aiutare a mantenere il mouse nell'area centrale anche se l'utente gira più in un modo rispetto all'altro.

Buona fortuna per il progetto, sembra emozionante.

+0

Hm .. Non pensavo a quel tipo di sensibilità dinamica. Sono un po 'scettico, dal momento che potrebbe sembrare molto diverso da quello a cui si è abituati, ma assolutamente degno di un colpo! – Jakob

Problemi correlati