Bewgungen an FPS anpassen

  • Bewgungen an FPS anpassen

    Hallo Leute!
    Ich stehe vor einem kleinen Problem, ich habe probiert bei meinem Online Spiel folgendes einzubauen:
    Die Bewegungsgeschwindigkeit der Spieler und Gegner soll immer an die Framerate angepasst werden. Denn bisher war es so das wenn bei einem Spieler die Frames runter gingen er dann auch logischerweiße langsamer gelaufen ist.
    Um das zu vermeiden wollte ich erst dem Mitspieler die FPS übermitteln und die dann bei ihm anpassen, so wären dann beide gleich langsam. Allerdings ist das dann doch komlpizierter als ich dachte, denn es kann ja auch sein das bei beiden mal die Frames runter gehen oder auch wieder steigen und wie ich das anpassen kann weiß ich nicht wirklich.
    Dann hat mich Dur'rean oder tobiasre (sorry ich weiß es nicht mehr, hab so viel mit euch beiden getestet ;) ) auf die Idee gebracht die Bewegungsgeschwindigkeit an die FPS anzupassen, dafür hab ich mal im Forum geschaut und diesen Thread gefunden: Klick
    So ähnlich hab ichs auch gemacht:

    rs=fps/60
    Speed=rs*3


    Jetzt gab es folgendes problem: Irgendwie scheint bei der Rechnung rs=fps/60
    nur ein Ergebniss ohne Kommastellen raus zu kommen, was nicht das erwünschte Ergebnisse beim Speed erzielt.
    Der Speed wird nämlich nur bei 30 Frames verdoppelt weil da eine glatte Zahl raus kommt, alles dazwischen z.b 46, 55
    funktioniert nicht. Hat da jemand eine Idee wie man das lösen könnte?

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

  • @Waterman7:
    Du hast recht, habs auch so gemacht,hab mich nur vertippt ;)

    @tobiasre:
    Ähm, das versteh ich nicht so richtig ?( Also ich will dass der Speed des Spieler Objektes immer konstant bleibt, egal wie hoch die FPS gerade sind.
  • Hab auch mal drüber nachgedacht und bin zu dem Ergebnis gekommen:

    GML-Quellcode

    1. ((fps/room_speed)+((room_speed-fps)/room_speed))*v
    2. //(fps/room_speed)+((room_speed-fps)/room_speed) kommt immer 1 raus
    3. //v=Geschwindigkeit für das Objekt (glaub in deinem Fall 3)

    Ich denke das müsste klappen ;)
  • Superdaniel schrieb:

    Hab auch mal drüber nachgedacht und bin zu dem Ergebnis gekommen:

    GML-Quellcode

    1. ((fps/room_speed)+((room_speed-fps)/room_speed))*v
    2. //(fps/room_speed)+((room_speed-fps)/room_speed) kommt immer 1 raus
    3. //v=Geschwindigkeit für das Objekt (glaub in deinem Fall 3)

    Ich denke das müsste klappen ;)
    Ich versteh nich ganz, was du damit sagen willst o.o

    Ich würde vorschlagen, dass man den speed relativ zum Verhältnis zwischen FPS/Room Speed.

    Wenn du z.B. 5Speed hast und 50 Room Speed dann hat man im Normalfall ja auch 50 FPS.

    Wenn nun die FPS sinken auf beispielsweise 25 so sinkt das Verhältnis auf 0.5 (25/50 ~ FPS/Room Speed) und damit multiplizierst du den Speed.

    Lange Rede kurzer Sinn:

    GML-Quellcode

    1. spd=>>Insert Speed here<<;
    2. speed=spd*room_speed/fps;


    Fertig
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet

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

  • Lass dass bleiben!
    Benutz eine dll für die Zeitberechnung!

    Moment...hier -> gmc.yoyogames.com/index.php?showt…6&mode=threaded


    Erstmal das und 2.
    fps/room_speed gibt 1, wenn fps=room_speed
    Wenn fps nur die Hälfte von room_speed ist, dann ergibt das 0.5.
    dh, Je niedriger die Fps, desto langsamer die speed, das ganze wird also nochmal verlangsamt und nicht angepasst...
    "das war meine letzte flamewar PM an dich ."
  • Sorry, anders herum in dem Fall.
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • Benutzer online 4

    4 Besucher