@AndyMars
da stimme ich dir vollkommen zu. deswegen muss jeder für sich, die frage beantworten, was sinn macht und was nicht. generell würde ich da
Delay(10) : WindowEvent() verwenden, da ich bei einem
OpenScreen() davon ausgehe, dass es viel mit grafik etc. zu tun haben wird. kann mich aber auch täuschen.
so hätt ichs gemacht, ist eigentlich auch (fast) das selbe:
Code: Alles auswählen
Procedure WindowCallback(hWnd, Msg, wParam, lParam)
Select Msg
Case #WM_PAINT
FlipBuffers()
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
#Title = "Test"
hWnd.l = OpenWindow(0, 0, 0, 800, 600, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, #Title)
If InitSprite() = #False Or OpenWindowedScreen(hWnd, 0, 0, WindowWidth(), WindowHeight(), 0, 0, 0) = #False
MessageRequester(#Title, "Error", #MB_ICONERROR)
End
EndIf
SetWindowCallback(@WindowCallback())
Repeat
Event.l = WindowEvent()
Delay(10)
FlipBuffers()
ClearScreen(0, 0, 0)
If Event = #WM_LBUTTONUP
MessageRequester(#Title, "Move Me!")
ElseIf Event = #WM_RBUTTONUP
End
EndIf
Until Event = #PB_Event_CloseWindow
End
jeder hat so seinen eigenen coding stil.
denoch gute arbeit, mein posting sollte nicht negativ gewertet werden. für spiele etc im fenster, ist die idee mit dem callback echt klasse.
darauf wäre ich nie gekommen. trotzdem hoffe ich, dass fred diese unschönheit fixt, damit diese notlösungen überflüssig werden und auf allen platformen funktionieren.
c ya,
nco2k