Formel - Gewschindigkeit

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Formel - Gewschindigkeit

    gut, oben steht ja schon, was ich will ^^
    ich möchte eine Formel, in der man einen Welt für die Geschwindigkeitszunahme und einen für die Maximalgeschwindigkeit eingibt. Und daraus soll dann die neue Geschwindigkeit entstehen.

    Falls es jemand nicht ganz verstanden hat, ich mache ein Weltraum Spiel, und mein Raumschiff kann mit verschiedenen Triebwerken ausgerüstet werden. Die Triebwerksobjekte übermitteln dem Raumschiffs-Objekt, die maximale Schnelligkeit, und die Schnelligkeitszuname, die speichert das Raumschiff und jeden Step Event muss ich einen bestimmten Wert hinzufügen (je nach dem, welche Taste ich drücke).

    Und wenn ich schonmal Frage, ich brauche die Übersetzung zu den folgenden zwei Wörtern, ja, hier sind sie: Triebwerk(e), Generator(en)

    thx und gruß
    copyboy
  • ich möchte aber, dass, je schneller man wird, desto langsamer die geschwindigkeit zunimmt
    EDIT: ich kenn mich ja auch in Mathe aus, also es soll praktisch so sein, dass der speed nie den max speed wert erreicht, also...

    maxspeed = 100
    increase = 1

    speed = 0 -- speed += 1
    speed = 50 -- speed += 0.5
    speed = 75 -- speed += 0.25
    usw.

    beim Wert 1 hätte ich das gerne so. also je nach dem, ob der Wert höher oder niedriger ist, wird man schneller schneller oder eben langsamer schneller :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von copyboy ()

  • Die Formel muss in etwa so aussehen:

    Quellcode

    1. Geschwindigkeitszuwachs = NormalerGeschwindigkeitszuwachs - (AktuelleGeschwindigkeit / MaximaleGeschwindikgeit * NormalerGeschwindigkeitszuwachs)


    AktuelleGeschwindigkeit / MaximaleGeschwindikgeit liegt zwischen 0 und 1 und ist umso größer, je schneller du bereits bist.Wenn du 100% Geschwindigkeit hast Wird vom Normalen Geschwindigkeitszuwchs auch der Gesamte Geschwindigkeitszuwachs abgezogen. Wenn du langsamer bist wird davon auch weniger abgezogen. NormalerGeschwindigkeitszuwachs ist dabei der Geschwindigkeitszuwachs, den das Raumschiff hat, wenn es eine Geschwindigkeit von 0 hat.
    Das ganze ist btw eine Lineare Funktion...
  • Willste mir erzählen das ein beschleunigendes Obejct immer langsamer beschleunigt?
    Beschleunigung bleibt die ganze zeit über konstant, außer es wirkt eine Gegenkraft, sodass sich Beschleunigung und gegenkraft irgendwann neutrallisieren und die Höhstgeschwindigkeit erreicht wird.
    Besuch mal den Physikunterricht ;)
    Hier die wichtigsten Formeln für beschleunigte Bewegung:
    s=0.5*a*t² (s=zurückgelegt strecke; a=beschleunigung und t=vergangene zeit) //unwichtig für dich
    v=a*t (heißt das Beschleunigung die ganze zeit über gleich bleibt) und die Geschwindigkeit somit gleichmäßig steigt
    In wirklichkeit gibt es natürlich gegenkräfte wie Reibung und Luftwiederstand.
    In deinem Fall existieren allerdings keine Gegenkräfte, außer Anziehungskräfte von Planeten und anderen Massen, die du sicher nicht in deine Rechnung einbauen möchtest ;)
  • 1.: Wenn dem so wäre, wäre Lichtgeschwindigkeit ja nicht unmöglich, da man im All dann ja nur lange genug beschleunigen müsste, um diese Geschwindigkeit irgendwann zu erreichen.
    2.: Du widersprichst dir selbst: Die Beschleunigung ist eben nicht konstant. Durch die konstante Leistung der Triebwerke ist höchstens die Antriebskraft konstant, welche um die der Bewegung entgegen wirkenden Kräfte vermindert, die Beschleunigungskraft ergibt, aus der sich dann die Beschleunigung berechnet.
    3.: Er will nun mal keine gleichmäßig beschleunigte Bewegung, sondern eine Bewegung mit einem Geschwindigkeitslimit, und dafür kannst du diese Formeln nicht anwenden.
    4.: Das soll ein Spiel werden, deshalb muss man nicht alle möglichen Faktoren, die in der Realität vorhanden sind in Variablen und Formeln quetschen, und sein Spiel mit unnötig viel Physik überladen; es reicht, wenn er das mit boxxars Formel modelliert.
  • @TrunX

    Auch im Weltall, wo es keine Reibung oder Luftwiderstand gibt, ist die Beschleunigung abhängig von der Geschwindigkeit. Die maximale Geschwindigkeit ist nämlich die, mit der die Teilchen vom Triebwerk das Rückstoßprinzip verursachen.
    Vom Prinzip her das Gleiche, als wolltest du ein Auto anschieben, dass sich schon schneller bewegt als du laufen kannst.
  • @ copyboy : Funktioniert auf jeden Fall, schau dir mal die Datei im Anhang an.

    @ TrunX : Zuerst kommt das Spielprinzip und dann die Physik. Was nützt es einem ein Raumschiff bis in die Unendlichkeit zu beschleunigen?

    EDIT: Was ist überhaupt mit den Übersetzungen? Ins Englische?
    Dateien
    • speed.rar

      (2,33 kB, 173 mal heruntergeladen, zuletzt: )

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von GamerML ()

  • 1. GamerML, dein Beispiel funktioniert nicht wirklich, und ist auch unnötig, weil ichs doch selbst getestet hab (sry ;) )
    2. Was hat denn das mit der Lichtgeschwindigkeit zu tun? Jaja, es WÄRE vielleicht möglich, aber (nach einstein) blablabla, je näher man der lichtgeschwindigkeit kommt, desto schwerer wird das objekt, und desto mehr antriebsstärke braucht man ... egal, diskutieren ist jetzt WRIKLICH nicht angesagt (ich will nicht, dass schon wieder ein Thread geschlosssen wird.
    3. Eigentllich hat es euch ja nichts zu interessieren, warum ich diese Formel brauche :D na gut, ich finds einfach gut anzuschaun ... zufrieden? :P
    4. wie schon gesagt, bei meinem spiel funktionierts nicht...
    5. boxxar, das war nur n beispiel, wie ichs haben möchte...
    6. wenn ihr nicht hinkriegt, mach ichs selber ;(

    wenn jetzt irgendwas gemein erscheint... NUR SPASS... ihr wisst schon:
    lol xD :D :P :happy: *grins* :kaputtlach: usw.
  • Original von copyboy
    1. GamerML, dein Beispiel funktioniert nicht wirklich, und ist auch unnötig, weil ichs doch selbst getestet hab


    Eigentlich stimmt der Code, der Speed war nur schlecht zu erkennen.
    Ich füg nen Hintergrund ein das man die Bewegung des Schiffs erkennt.

    Pfeil links und rechts = beschleunigen
    Und der Score zeigt die Geschwindigkeit.

    So, damit wärs wohl richtig gestellt. ;)
    Dateien
    • speed2.rar

      (2,58 kB, 148 mal heruntergeladen, zuletzt: )
  • wenn jetzt irgendwas gemein erscheint... NUR SPASS... ihr wisst schon

    ich versteh nicht ganz ... also wenn ich schon SOOO hier komme, dann kann ja eigentlich alles schiefgehen... also boxxar, sry wegen dem, ich verstehs einfach nicht, Smilies sind ja dafür da.
    Und Danke Leute, ich weiß jetzt, was gefehlt hat ... bzw, was nicht da hin gehört ^^
    Mein jetziger Code:

    GML-Quellcode

    1. var spd,inc,max,iii,ii;
    2. spd = global.ship_spd;
    3. inc = global.ship_spd_inc/10;
    4. max = global.ship_spd_max;
    5. iii = spd;
    6. if (keyboard_check(vk_up))
    7. || (keyboard_check(ord("W"))) {global.ship_spd += inc-(spd/max*inc);}
    8. if (keyboard_check(vk_down))
    9. || (keyboard_check(ord("S"))) {global.ship_spd -= inc/3+(spd/max*inc);}
    10. ii = global.ship_spd;
    11. if (iii >= ii) && (iii > 0) {global.ship_spd *= 0.99;}
    12. if (iii <= ii) && (iii < 0) {global.ship_spd *= 0.99;}
    13. motion_set(global.ship_dir,global.ship_spd);
    Alles anzeigen

    (iii und ii sind zur Überprüfung da, ob sich am speed was geändert hat)
    das Problem lag darin, dass ich einfach

    GML-Quellcode

    1. global.ship_spd *= 0.99;

    gemacht habe, das bremst mein Raumschiff ja.

    ( SPD bedeutet nicht Schröder ***** daneben, und somit kein verstoß gegen die Regeln, es ist nur die abkürzung von speed :D ) <-- nicht falsch verstehen, nur Spaß