Eingabe

Eingabe

Tastatur- und Mauseingabeverwaltung mit Raycasting-Unterstützung.

InputManager verfolgt Tastatur- und Mausstatus und bietet Raycasting-Utilities zur Umrechnung von Bildschirmkoordinaten in Weltpositionen.

// Zugriff über game.input
const input = game.input

Tastatur

Tasten werden durch ihren KeyboardEvent.code-Wert verfolgt.

// Prüfen ob eine Taste aktuell gedrückt ist
if (input.keysPressed.has('KeyW')) {
  // W ist gedrückt
}

if (input.keysPressed.has('Space')) {
  // Leertaste ist gedrückt
}

Tastatur-Events

input.on('keydown', (event: KeyboardEvent) => {
  console.log('gedrückt:', event.code)
})

input.on('keyup', (event: KeyboardEvent) => {
  console.log('losgelassen:', event.code)
})

Maus

Mausschaltflächen-Status wird nach Schaltflächenindex verfolgt (0 = links, 1 = Rad, 2 = rechts).

if (input.mousePressed.has(0)) {
  // Linke Maustaste ist gedrückt
}

Cursorposition

Die normalisierte Cursorposition im Bereich [-1, 1] auf beiden Achsen:

input.cursor // THREE.Vector2, bei jedem mousemove aktualisiert

Weltposition-Raycasting

Wandle die Cursorposition in eine Weltkoordinate um mit getPointerWorldPosition:

const worldPos = input.getPointerWorldPosition()
// Gibt THREE.Vector3 | null zurück

Parameter:

ParameterTypBeschreibung
exceptObject3D[]Objekte, die vom Raycasting ausgeschlossen werden
onlyObject3D[]Nur gegen diese Objekte raycasten
// Nur gegen das Terrain raycasten
const pos = input.getPointerWorldPosition(undefined, [terrain.instance])