Java Spiel steigende Geschwindigkeit?
Hallo,ich programmiere gerade ein kleines Spiel in java und bräuchte etwas Hilfe.Ich habe eine bewegen Methode, die ein Objekt bewegt.Des weiteren habe ich noch eine tick Methode die 100 mal pro Sekunde tickt und damit die bewegen Methode ausführt nun möchte ich aber , dass mit dem erhöhen einer variable die geschwindigkeit erhöht wird und das möglichst linear public void tick(){ if(ii % jj == 0){ bewegen(); }} und jj wird verringert um die Geschwindigkeit zu erhöhen jedoch ist die Beschleunigung hierbei eher Exponentiell Ich hoffe jemand kann mir helfen.
2 Antworten
ii wird bei jedem Tick erhöht. Mit jj willst du die Geschwindigkeit erhöhen.
Wenn jj 4 ist, wird alle vier Ticks das Objekt bewegt. Die Geschwindigkeit beträgt also 0.25 Einheiten/Tick.
Wenn jj halbiert wird, also 2 ist, wird das Objekt alle 2 Ticks bewegt. Die Geschwindigkeit beträgt also 0.5 Einheiten/Tick.
D.h. es besteht ein antiproportionaler Zusammenhang zwischen jj und der Geschwindigkeit. Halbiert man jj, verdoppelt man die Geschwindigkeit.
Wenn nun also jj linear verringert wird ergeben sich folgende Zusammenhänge: Die Geschwindigkeit wird linear erhöht. Das bedeutet die Strecke wird quadratisch erhöht, die Beschleunigung ist konstant.
Exponentiell ist da nichts. Was genau ist an diesem Verhalten also unerwünscht? Oder tritt ein anderes Verhalten als dieses ein? Dann wäre eine fehlerhafte Implementierung die Ursache.
public void tick()
{
if ( ii % jj == 0)
{
bewegen();
}
}
wie erhöhst du denn ii?
und wie verringerst du jj? Zeichne dir mal einen Graphen mit x=ii und y=jj
Ich glaube du hast einen mathematischen Fehler
jj wird nach bedarf verringert wenn man die geschwindigkeit erhöhen will
wieso frägst du überhaupt den Rest mit Modulo ab? Verringere/Erhöhe es doch einfach gleich um einen ganzen Tick
Ist auch in der tick Methode wird also mit jedem tick erhöht