Kameraverfolgung mit Dämpfung

Code, Java, Mathematik, Tipps No Comments »

Für mein aktuelles Freizeitprojekt, ja ich bin ein Hobby-Spiele-Entwickler bzw. versuche einer zu sein, wollte ich eine Kamera haben die dem Ziel folgt. Allerdings soll der Kameraschwenk nicht statisch sein (1:1) sondern je nach Geschwindigkeit des Ziels etwas an Dynamik gewinnen. Da man das Rad nicht 100k mal neu erfinden möchte, sucht man halt nach einigen Code-Schnippseln. Meine Suche hatte erfolgt ;-)

void update(float delta) {
    Entity target = getTarget();
    Entity camera = getCamera();
    final float threshold = ...;
    final float feelFactor = ...;

    Vector2f difference = target.getPosition().sub(camera.getPosition());
    float distance = difference.length();

    if (distance > threshold) {
        Vector2f direction = difference.norm();
        float speed = (distance - threshold) * feelFactor;

        Vector2f newPosition = camera.getPosition().add(direction * speed);

        camera.setPosition(newPosition)
    }
}

Das Fragment ist eigentlich selbsterklärend. Falls jemand Hilfe dabei braucht, ihr habt die Kommentar-Funktion :-)

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Anmelden