Atom Engine

Input

Purpose

Klasa Input jest wysokopoziomowym wrapperem nad niskopoziomowym systemem wejścia. Zarządza śledzeniem stanu klawiatury, w tym naciśnięciami klawiszy oraz stanami przytrzymania, jednocześnie opcjonalnie filtrując „zablokowane” klawisze (np. klawisze strzałek, spację oraz określone klawisze akcji). Udostępnia uproszczone API do zapytań o stan wejścia w pętlach gry lub aplikacjach interaktywnych.


Lifecycle

Creation → Update → Destruction


Public API

constructor(blockedKeys?: string[])

Tworzy nową instancję handlera wejścia.


isDown(key: string): boolean

Sprawdza, czy klawisz jest obecnie wciśnięty.


isPressed(key: string): boolean

Sprawdza, czy klawisz został naciśnięty w bieżącym cyklu aktualizacji.


clearPressed(): void

Resetuje wszystkie stany „pressed”.


getState(): InputState

Zwraca bazowy obiekt stanu wejścia.


Internal Behavior


Example

import { Input } from "./Input";

const input = new Input();

// Game loop
function update() {
    if (input.isDown("ArrowLeft")) {
        console.log("Moving left continuously");
    }

    if (input.isPressed(" ")) {
        console.log("Jump triggered");
    }

    // Reset per-frame press states
    input.clearPressed();
}