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:
| Parameter | Typ | Beschreibung |
|---|---|---|
except | Object3D[] | Objekte, die vom Raycasting ausgeschlossen werden |
only | Object3D[] | Nur gegen diese Objekte raycasten |
// Nur gegen das Terrain raycasten
const pos = input.getPointerWorldPosition(undefined, [terrain.instance])