Hi,
bei meinem kleinen Programm habe ich das Problem das es auf meinem Rechner mit ca. 400 FPS läuft
und auf einem anderem schlechteren Rechner mit ca. 80 Frames.
Folgliche ist die bewegung meines meshes viel zu schnell auf meinem Rechner.
Ich denke mal das ein Delay hier nicht die lösung bringt, da ja das gesamte Programm angehalten wird.
Gruss
Schoppy
Programm mit konstanter Framerate laufen lassen
Re: Programm mit konstanter Framerate laufen lassen
Dieses Problem wirst du immer haben, selbst wenn du es überall mit 60FPS laufen lässt, wird es wieder ein rechner geben, der nur mit 50FPS läuft usw.
Darum sollte man Bewegungen nicht einfach nur mit "Ort+1" darstellen, sondern die Bewegung mit der echten Zeit abstimmen (ElapsedMilliseconds) oder mit den momentanen FPS synkronisieren.
Du kannst aber auch einfach nur die Frame-Rate für WindowedScreens ändern:
SetFrameRate(FrameRate)
Darum sollte man Bewegungen nicht einfach nur mit "Ort+1" darstellen, sondern die Bewegung mit der echten Zeit abstimmen (ElapsedMilliseconds) oder mit den momentanen FPS synkronisieren.
Du kannst aber auch einfach nur die Frame-Rate für WindowedScreens ändern:
SetFrameRate(FrameRate)
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Programm mit konstanter Framerate laufen lassen
Danke für die schnelle Hife.
Langsamer wäre ja nicht schlimm.
Das Programm dürfte halt nur nicht schneller laufen als z.b. 60 FPS.
Das Problem welches ich z.Zt. habe ist das durch den Tastendruck auf der Tastatur die folgende bewegungsaktion etliche male ausgeführt wird.
Die Variabel die den Tastendruck sperrt wird so schnell wieder aufgehoben weil die bedingung hierfür zu schnell erfüllt wird.
Mit SetFrameRate(FrameRate) kann ich nicht arbeiten das es ein Irrlicht Screen ist.
Gruss
Florian
Langsamer wäre ja nicht schlimm.
Das Programm dürfte halt nur nicht schneller laufen als z.b. 60 FPS.
Das Problem welches ich z.Zt. habe ist das durch den Tastendruck auf der Tastatur die folgende bewegungsaktion etliche male ausgeführt wird.
Die Variabel die den Tastendruck sperrt wird so schnell wieder aufgehoben weil die bedingung hierfür zu schnell erfüllt wird.
Mit SetFrameRate(FrameRate) kann ich nicht arbeiten das es ein Irrlicht Screen ist.
Gruss
Florian
Re: Programm mit konstanter Framerate laufen lassen
Jo deswegen meinte ich ja, sowas sollte über die Zeit gereget werden.Die Variabel die den Tastendruck sperrt wird so schnell wieder aufgehoben weil die bedingung hierfür zu schnell erfüllt wird.
Du hast n StartZeit = ElapsedMilliseconds()
und prüfst dann ob ob im späteren verlauf ElapsedMilliseconds()-StartZeit < 1000 was einer Sekunde entspricht.
das wäre wie Value + 1 zu machen und den Tastendruck solange zuzulassen wie Value < 100 ist oder so.
Aber mit der echten zeit ist es wirklich immer 1 Sekunde !
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Re: Programm mit konstanter Framerate laufen lassen
Hi @Schoppy,
oder schau Dir mal das vierte Beispiel des Original Irrlicht SDK´s an.
Da sieht man wie Objekte gleichschnell bewegt werden egal was man für
eine Framerate hat.
Gruß
Nighthawk
oder schau Dir mal das vierte Beispiel des Original Irrlicht SDK´s an.
Da sieht man wie Objekte gleichschnell bewegt werden egal was man für
eine Framerate hat.
Gruß
Nighthawk
PB4.51 x86 / Win7 64bit
Aktuelle Projekte : Irrlichtwrapper für PB und .NET
Aktuelle Projekte : Irrlichtwrapper für PB und .NET