Java spiel Programmieren fallen von Pizza?

1 Antwort

Vom Fragesteller als hilfreich ausgezeichnet

Zum Erzeugen der Pizza verwende einen Array oder eine Liste oder dergleichen, in er du Pizzen speicherst.
Die Position kannst du mittels Zufallsgenerator generieren:

https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/util/Random.html

(Gibt auch noch andere Zufalls-Sachen.)

Damit die Pizzen herunterfallen, schreibe eine Update-Funktion, die die Position updated.
Diese erhält als Parameter die "deltaTime", die zeit, die siet dem letztem Update vergangen ist.

Das Update funktioniert dann einfach mittels:

v_n = v_n-1 + a * dt;
x_n = x_n-1 + v_n * dt;

Wobei "v_n" die Geschwindigkeit zum Zeitpunkt "n" ist, "x_n" die Position zum Zeitpunkt "n", "a" die Beschleunigung (Fallbeschleunigung) und "dt" die "deltaTime".

Diese Funktion rufst du dann immer wieder auf. Die "deltaTime" trackst du irgendwo beim Aufrufer. Du speicherst dir die letzte Aufrufzeit. Bei jedem Aufruf rufst du die aktuelle Zeit auf, berechnest die Differenz zur vorherigen zeit als "deltaTime" und updatest die vorherige Zeit mit der gerade aufgerufenen aktuellen Zeit.

Die Zeit erhälst du über eine passende Funktion:

https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/System.html#nanoTime()

oder

https://docs.oracle.com/en/java/javase/22/docs/api/java.base/java/lang/System.html#currentTimeMillis()

Beachte die Einheit. Die musst du umrechnen in die passende für deine Berechnung (aber am besten erst dann, wenn du musst, nicht dass Information zu früh verloren geht).