2010-04-11 17 views
7

Korzystam z JavaScript, elementu canvas HTML5 i WebGL, aby stworzyć prostą grę 3D w widoku pierwszoosobowym dla zabawy.Zarządzanie myszką w grach JavaScript

Idealnie, chciałbym kontrolować mój ruch za pomocą klawiatury, aby poruszać się i myszy, aby rozejrzeć się, jak zwykle w grach FPS. Jak zapewne zrozumieć, istnieją pewne granice w przeglądarce, ponieważ mysz cant być zrobione:

  • Przy użyciu zdarzenie onmousemove zostanie wykryty żaden dalszy ruch, gdy wskaźnik myszy osiągnie granicę mojego ekranu (co oznacza, że ​​wont być w stanie uruchomić w kręgu na przykład)
  • Widząc ruch myszy po ekranie nie jest koniec świata, ale jest to trochę denerwujące

z tego co wiem, , nie można ukryć myszy, a także ustawić jej pozycję w JavaScript. Stąd moje pytanie jest takie:

Jeśli cant do tych rzeczy, co możemy zrobić, aby zbliżyć się do doświadczenia gry na pulpicie, jeśli chodzi o myszy w przeglądarce?

Mam na myśli teraz, używając obecnych API. Nie "to, co można zmienić w niektórych standardach, aby ułatwić życie". Ponadto zdaję sobie sprawę, że mogę używać klawiatury, aby się rozejrzeć, ale wracamy w 1995 roku, kiedy Quake był tak odtwarzany. I oczywiście wiem, że łatwiej byłoby napisać aplikację na komputery stacjonarne lub przynajmniej używać Flasha, ale próbuję wprowadzić ograniczenia JavaScriptu tutaj.

Oprócz tych rzeczy, jakie są Twoje sugestie? Każdy rodzaj referencji, istniejącej gry, szalonego pomysłu, hack, a nawet rozwiązania specyficzne dla przeglądarki będą mile widziane.

+1

Zastanawiam się, jak http://code.google.com/p/quake2-gwt-port/ nie rozglądając się, nie próbował go faktycznie ponieważ I CBA dostałem wersję rozwojową Chrome, ale domyślam się, że mają coś takiego. –

+2

Możesz ukryć kursor za pomocą 'body {cursor: url (path/to/blank.gif);}' ... będzie działać we wszystkich przyzwoitych przeglądarkach i myślę, że możesz ustawić kursor nieco subtelniej w IE za pomocą 'kursora: celownika '. – James

+0

Projekt trzęsienia ziemi wygląda naprawdę interesująco, spróbuję zobaczyć, co robią. I dzięki za ukrywanie pomysłów kursora! – Jakob

Odpowiedz

2

Przeprowadziłem kilka eksperymentów z myszkowaniem w grze, o ile pamiętam, to tylko Opera, której nie zrobiłem, więc dałem jej krzyż. Istotne jest to, że niektóre przeglądarki wyświetlają całkowicie niewidoczny obraz kursora jako czarną skrzynkę, ale z jednym prawie niewidocznym pikselem zadziała. Zapraszam do pobrania części myszy i pliku kursora. http://ebusiness.hopto.org/iimdtdt/

Pomyślałem trochę o rozglądaniu się po części samemu, dla ruchu w górę/w dół jest to łatwe, ponieważ i tak to zrobisz, a wszystko, co musisz zrobić, to upewnić się, że czapka jest zsynchronizowana za pomocą nasadki ruchu myszy. W przypadku części bocznej sugeruję, aby spróbować manipulować wrażliwością, gdy mysz zbliża się do krawędzi ekranu, czułość powinna iść w górę w kierunku krawędzi ekranu iw dół w kierunku od krawędzi ekranu. Nie wypróbowałem tej metody, więc nie mogę powiedzieć, jak dobrze ona działa, ale powinna pomóc utrzymać mysz w środkowym obszarze, nawet jeśli użytkownik obraca się bardziej w jedną stronę niż druga.

Powodzenia w projekcie, brzmi ekscytująco.

+0

Hm ... Nie myślałem o takiej dynamicznej wrażliwości. Jestem trochę sceptyczny, ponieważ może wydawać się zupełnie inny od tego, do którego jest się przyzwyczajony, ale absolutnie warty strzału! – Jakob

Powiązane problemy