Also ich hab ebenfals 84 - 85 FPS ... die Werte selber sagen eigentlich nichts aus
Die zu bewegenden Pixel liegen bei 4,68 - 4,72 ... gehen eigentlich aus diesem Bereich nicht raus.
Allerdings glaub ich jetzt, ich weis was du meinst ...
Ich habs mir angeschaut mit festen Zahlen und ohne ... ohne kommt es vermehrt vor, das die Figur hin und her springt ... auf dauer wirklich blöd.
Du hattest ja das hier gepostet
Code: Alles auswählen
multiplicator.f = StartTime
StartTime = timeGetTime_()
PlayerPix.f = StartTime - multiplicator
Aber du hast nicht gepostet, wie du PlayerX und PlayerY berechnest, gehört ja eigentlich auch dazu ... allerdings fällt mir bei dem obigen code auf, das du dort nur multiplizierst ...
Im folgenden ein Code wie ich die Geschwindigkeit berechnen würde:
Code: Alles auswählen
ExamineDesktops()
MitteX = DesktopWidth(0)/2 - 50
MitteY = DesktopHeight(0)/2 - 25
WindowX.f = MitteX
WindowY.f = MitteY - DesktopHeight(0) / 2 + 100
Window = OpenWindow(#PB_Any, WindowX, WindowY, 100, 50, 0, "Zeitgesteuert")
CreateGadgetList(WindowID())
TextGadget(0, 0, 5, 100, 20, "Klick mich!", #PB_Text_Center)
TextGadget(1, 0, 20, 100, 15, "", #PB_Text_Center)
TextGadget(2, 0, 35, 100, 20, "", #PB_Text_Center)
#Speed = 100 ;gewünschte Geschwindigkeit (Pixel pro Sekunde)
#PI = 3.14159265
#Umrechnung = 57.29578
Timer = ElapsedMilliseconds()
Repeat ;Hauptschleife
ExamineDesktops()
LastTime = Timer
Timer = ElapsedMilliseconds()
;If Timer <= LastTime : LastTime = Timer - 1 : EndIf ;eventuell, fals die Zeit pro Frame nicht 0 sein darf
Width = DesktopWidth(0)/2 - WindowX
Height = DesktopHeight(0)/2 - WindowY
If Width < 0 And Height <= 0
WindowWinkel=ATan(-Height/-Width)*#Umrechnung+90
ElseIf Width < 0 And Height >=0
WindowWinkel=ATan(-Width/Height)*#Umrechnung
ElseIf Width > 0 And Height > 0
WindowWinkel=ATan(Height/Width)*#Umrechnung+270
ElseIf Width >= 0 And Height <0
WindowWinkel=ATan(-Width/Height)*#Umrechnung+180
EndIf
WindowSpeed.f = (Timer - LastTime) / 1000 * #Speed ;berechnung der Geschwindigkeit in diesem Frame
WindowX + Cos(WindowWinkel * #PI / 180) * WindowSpeed
WindowY + Sin(WindowWinkel * #PI / 180) * WindowSpeed
MoveWindow(WindowX, WindowY)
FPSCounter + 1
If ElapsedMilliseconds() >= FPSTimer + 1000 : FPS = FPSCounter : FPSCounter = 0 : FPSTimer = ElapsedMilliseconds() : EndIf
SetGadgetText(1, "FPS: "+Str(FPS))
Delay(10)
Until WindowEvent() = #WM_LBUTTONDOWN
Ich weis nicht ob dir das hilft oder wie auch immer ...

Könntest ja auch versuchen dein Problem da irgend wie ein zu bauen oder zu suchen
MFG PMV