Pixel/Frame läßt sich nicht ablesen, nur schätzen bei der Geschwindigkeit: zwischen 4,x und 5,x - manchmal auch 6.
Ansonsten ruckelfrei. Mein System: siehe Profil
Code: Alles auswählen
multiplicator.f = StartTime
StartTime = timeGetTime_()
PlayerPix.f = StartTime - multiplicator 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