This commit is contained in:
+18
-24
@@ -2,9 +2,9 @@ import { Vector3 } from 'three';
|
||||
import { PointerLockControls } from 'three/examples/jsm/Addons.js';
|
||||
|
||||
class PointerControls {
|
||||
constructor(camera, domElement) {
|
||||
constructor(engine) {
|
||||
this.kb = {};
|
||||
this.dom = domElement;
|
||||
this.dom = engine.renderer.domElement;
|
||||
|
||||
this.canJump = false;
|
||||
this.velocity = new Vector3();
|
||||
@@ -13,10 +13,10 @@ class PointerControls {
|
||||
this.vertex = new Vector3();
|
||||
this.rvelo = 0;
|
||||
|
||||
this.camera = camera;
|
||||
this.engine = engine;
|
||||
this.click = false;
|
||||
|
||||
this.controls = new PointerLockControls(camera, domElement);
|
||||
this.controls = new PointerLockControls(engine.camera, this.dom);
|
||||
|
||||
const onKeyDown = (event) => {
|
||||
this.kb[event.code] = true;
|
||||
@@ -35,55 +35,49 @@ class PointerControls {
|
||||
document.addEventListener('keydown', onKeyDown);
|
||||
document.addEventListener('keyup', onKeyUp);
|
||||
|
||||
window.addEventListener("gamepadconnected", (e) => {
|
||||
this.gp = navigator.getGamepads()[e.gamepad.index];
|
||||
console.log("Gamepad connected", this.gp);
|
||||
});
|
||||
|
||||
domElement.addEventListener('click', () => {
|
||||
this.dom.addEventListener('click', () => {
|
||||
this.controls.isLocked && this.clicked && this.clicked();
|
||||
});
|
||||
|
||||
domElement.addEventListener('mousedown', () => {
|
||||
this.dom.addEventListener('mousedown', () => {
|
||||
this.controls.isLocked && this.onpointer && this.onpointer('start');
|
||||
});
|
||||
|
||||
domElement.addEventListener('mousemove', () => {
|
||||
this.dom.addEventListener('mousemove', () => {
|
||||
this.controls.isLocked && this.onpointer && this.onpointer('drag');
|
||||
});
|
||||
|
||||
domElement.addEventListener('mouseup', () => {
|
||||
this.dom.addEventListener('mouseup', () => {
|
||||
this.controls.isLocked && this.onpointer && this.onpointer('end');
|
||||
});
|
||||
|
||||
this.update = () => { };
|
||||
|
||||
}
|
||||
|
||||
get moveForward(){
|
||||
return this.kb['ArrowUp'] || this.kb['KeyW'] || false
|
||||
return this.kb['ArrowUp'] || this.kb['KeyW'] || this.engine.xrController1?.gamepad?.axes[3] < -0.5 || false
|
||||
}
|
||||
|
||||
get moveBackward(){
|
||||
return this.kb['ArrowDown'] || this.kb['KeyS'] || this.engine.xrController1?.gamepad?.axes[3] > 0.5 || false
|
||||
}
|
||||
|
||||
get moveLeft(){
|
||||
return this.kb['ArrowLeft'] || this.kb['KeyA'] || false
|
||||
return this.kb['ArrowLeft'] || this.kb['KeyA'] || this.engine.xrController1?.gamepad?.axes[2] < -0.5 || false
|
||||
}
|
||||
|
||||
get moveRight(){
|
||||
return this.kb['ArrowRight'] || this.kb['KeyD'] || this.engine.xrController1?.gamepad?.axes[2] > 0.5 || false
|
||||
}
|
||||
|
||||
get rotateLeft(){
|
||||
return this.moveLeft;
|
||||
}
|
||||
|
||||
get moveRight(){
|
||||
return this.kb['ArrowRight'] || this.kb['KeyD'] || false
|
||||
}
|
||||
|
||||
get rotateRight(){
|
||||
return this.moveRight;
|
||||
}
|
||||
|
||||
get moveBackward(){
|
||||
return this.kb['ArrowDown'] || this.kb['KeyS'] || false
|
||||
}
|
||||
|
||||
get moveUp(){
|
||||
return this.kb['KeyR'] || false
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user