119 und 200 werden ohne Probleme richtig umgesetzt (hab es mit Fraps überprüft)
Der Fehler tritt nur auf, wenn die Bildschirmwiederholrate auf 120 Hz steht (geht mit meinen 3D-Monitor ohne Probleme). Wenn ich den auf 100Hz stelle, dann tritt der Fehler bei setframerate(100) auf.
60Hz hab ich leider nicht zur Verfügung - das verweigert meine NVDI-Karte zum einstellen. Möglich das der Fehler auch auf 60 hz funktioniert.
Grobe Vermutung: Ich hab den Screen mit #PB_Screen_NoSynchronization geöffnet. SetFrameRate scheint wohl zu kontrollieren gewählte Hz=BildschirmHz -> kein Eingriff nötig und übersieht das #PB_Screen_NoSynchronization zumindest beim Windowed Screen.
Hier ein Beispielcode zum experimentieren
Code: Alles auswählen
Dim x.f(10)
Dim y.f(10)
Dim dx.f(10)
Dim dy.f(10)
For i=0 To 10
x(i)=Random(640)
y(i)=Random(640)
dx(i)=2-Random(4)
dy(i)=2-Random(4)
Next
If OpenWindow(0,0,0,640,400,"test", #PB_Window_ScreenCentered|#PB_Window_SystemMenu)
InitSprite()
If OpenWindowedScreen(WindowID(0),0,0,640,400,#False,0,0,#PB_Screen_NoSynchronization)
SetFrameRate(120);119 geht, 120 nicht, 200 geht.
Repeat
ClearScreen(0)
StartDrawing(ScreenOutput())
For i=0 To 10
ox=x(i):oy=y(i)
If x(i)+dx(i)<0 Or x(i)+dx(i)>640
dx(i)=-dx(i)
EndIf
If y(i)+dy(i)<0 Or y(i)+dy(i)>400
dy(i)=-dy(i)
EndIf
x(i)+dx(i)
y(i)+dy(i)
LineXY(ox,oy,x(i),y(i))
Next
StopDrawing()
FlipBuffers()
Until WindowEvent()=#PB_Event_CloseWindow
EndIf
EndIf