ich habe da ein Problem entdeckt, das für die meisten eher nicht relevant ist.
Mich aber sehr nervt.
Ich habe 3 Monitore, Monitor 1 ist in der Mitte, Monitor 2 ist rechts und Monitor 3 ist links mit
einem Negativ Offset.
Hier erstmal der Code
Code: Alles auswählen
#EventForce = 1
Global Event,Quit
InitEngine3D()
InitSprite()
Procedure DebugLog(t.s)
If DebugLog
Debug(t)
EndIf
EndProcedure
Procedure Timer()
Select EventTimer()
Case #EventForce
; Dieser Code Teil muss in die TimerEvent Procedure, Weil sonst beim bewegen des Fensters
; Das Programm bei WaitEvent stehen bleibt. Ein bekanntes Problem ab W 7 durch die einfürung
; des Binding Systems
If RunTest < ElapsedMilliseconds()
RunTest = ElapsedMilliseconds()+1000
debuglog("Main Schleife läuft")
EndIf
;----------------------------------------------------------------------------------------
EndSelect
EndProcedure
OpenWindow(0, 0, 0, 640, 480, "Cube example", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 0, 0, 0)
; Damit beim Windows Verschieben der Code nicht stehen bleibt.
AddWindowTimer(0, #EventForce , 100)
BindEvent(#PB_Event_Timer, @Timer(), 0)
; Light
CreateLight(#PB_Any, RGB(25, 25, 180), -5, 10, 5, #PB_Light_Point)
; Camera
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 2, 1, 3, #PB_Absolute | #PB_Local)
CameraLookAt(0, 0, 0, 0)
; Erstelle den Würfel und binde ihn an die Szene
CreateCube(0, 1)
CreateEntity(0, MeshID(0), #PB_Material_None)
Repeat
Repeat
Event = WindowEvent()
If Event
If EventWindow() = 0
Select Event
Case #PB_Event_Gadget
Select EventGadget()
Case 1
EndSelect
Case #WM_KEYDOWN
Select EventwParam()
Case #ESC
Quit = 1
EndSelect
Case #PB_Event_CloseWindow
Quit = 1
Default
EndSelect
EndIf
Else
Delay(1)
EndIf
Until Event = 0
If Quit = 1
If MessageRequester("Quit Requester","You are quite the programm ",#PB_MessageRequester_YesNo ) = #PB_MessageRequester_No
Quit = 0
EndIf
EndIf
RotateEntity(0, 1, -1, 0 ,#PB_Relative)
RenderWorld()
FlipBuffers()
Until Quit = 1
CloseWindow(#PB_All)
End
Engine ab. Was bei einem Programm ende mit einem Fehler endet.
Code: Alles auswählen
[11:05:32] Warte auf den Start des Executable...
[11:05:31] Executable-Typ: Windows - x86 (32bit, Unicode)
[11:05:32] Executable gestartet.
[11:05:39] [ERROR] Main.pb (Zeile: 51)
[11:05:39] [ERROR] Ungültiger Speicherzugriff. (Schreibfehler an der Adresse 359582440)
[11:05:48] Das Programm wurde beendet.
[11:06:34] Warte auf den Start des Executable...
[11:06:34] Executable-Typ: Windows - x86 (32bit, Unicode)
[11:06:34] Executable gestartet.
[11:06:47] [ERROR] Main.pb (Zeile: 25)
[11:06:47] [ERROR] Ungültiger Speicherzugriff. (Lesefehler an der Adresse 8)
[11:07:00] Das Programm wurde beendet.
[11:07:09] Warte auf den Start des Executable...
[11:07:09] Executable-Typ: Windows - x86 (32bit, Unicode)
[11:07:09] Executable gestartet.
[11:07:23] [ERROR] Main.pb (Zeile: 25)
[11:07:23] [ERROR] Ungültiger Speicherzugriff. (Lesefehler an der Adresse 23)
[11:08:09] Das Programm wurde beendet.
[13:48:43] Warte auf den Start des Executable...
[13:48:43] Executable-Typ: Windows - x86 (32bit, Unicode)
[13:48:43] Executable gestartet.
[13:48:50] [ERROR] Main.pb (Zeile: 97)
[13:48:50] [ERROR] Ungültiger Speicherzugriff. (Schreibfehler an der Adresse 4099286488)
Bevor ich es als Bug betitle.
Der Absturz erfolgt erst, wenn das Fenster beim Verschieben losgelassen wird.
Gruss TFT