5

Edytuj: Wygląda na to, że problem dotyczy touchpada, a nie myszy.Odpowiedz na ruch myszy po naciśnięciu klawisza (JavaScript, jQuery)

Cel:Aby móc reagować na ruchy myszy, nawet jeśli klucz (e) jest wciśnięty.

Chcę zmodyfikować PointerLockControls z Three.js tak że: jeśli użytkownik przesuwa kursor myszy po naciśnięciu „W”, a następnie kamera powinna nadal iść do przodu i kierunek kamery należy również zmieniać w zależności od ruchu myszy. Tak się nie dzieje w normalnym scenariuszu. Oto słuchaczy:

słuchaczy do mousemove:

var onMouseMove = function (event) { 
    var movementX = event.movementX || event.mozMovementX || event.webkitMovementX || 0; 
    camera.rotation.y-=movementX*0.002; 
    }; 

Listener dla keyDown:

var onKeyDown = function (event) { 

     case 38: // up 
     case 87: // w 
      moveForward = true; 
      break; 
     //keys: a, s, d are handled similarly 

     case 32: // space 
      if (canJump === true) velocity.y += 10; 
      canJump = false; 
      break; 
    } 

Listener dla keyup imprezy:

var onKeyUp = function(event){ 
     case 38: // up 
     case 87: // w 
      moveForward = false; 
      break; 
} 

Uważam, że jeśli uderzę spacji po naciśnięciu „W”, a następnie, gracz kontynuuje ruch do przodu i reaguje na ruch myszy. To jest efekt, który chcę (ale powinien działać nawet bez naciśnięcia spacji).

+0

Czy to możliwe, że używasz starszej wersji pliku three.js? Właśnie uruchomiłem przykład http://mrdoob.github.com/three.js/examples/misc_controls_pointerlock.html w trybie pełnoekranowym, a to, co się dzieje, jest dokładnie odwrotnością tego, co opisujesz. Po naciśnięciu "W" kamera porusza się do przodu, a kierunek kamery zmienia się zgodnie z ruchem myszy. Po naciśnięciu klawisza spacji pojawia się tylko ruch w pionie (nawet przy naciśnięciu W). – gaitat

+0

Och ... kiedy używam touchpada mojego laptopa, zachowanie jest takie, jak opisałem. Ale kiedy używam samej myszy, zachowanie jest takie, jak to opisałeś. hmm .... wygląda na nowy, świeży problem ... – coolscitist

+0

Żaden mój touchpad nie działa tak samo jak zachowanie myszy. – gaitat

Odpowiedz

2

Zazwyczaj systemy operacyjne wyłączają klawiaturę podczas pisania. Powinieneś znaleźć opcję, aby zmienić to gdzieś w ustawieniach systemu operacyjnego.

+0

To działało po wyłączeniu opcji "Touch Check" touchpada w Windows 7. Wielkie dzięki. – coolscitist

Powiązane problemy