ich weiß, dass ich diese Frage schon einmal gestellt habe, aber ich kann den Thread nicht mehr finden.
Mein Problem: Der folgende Code führt nach ein paar Ausführungen einer Schleife zu einem "Keine Rückmeldung" von Windows.
Weiß jemand, wie man das beheben könnte?
(Das ist ein editiertes Beispiel und gehört in eben diesen Ordner.)
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - Static Geometry
;
; (c) 2012 - Fantaisie Software
;
; ------------------------------------------------------------
;
IncludeFile "Screen3DRequester.pb"
Define.f KeyX, KeyY, MouseX, MouseY
Define nx.f, nz.f, Boost.f = 10, Yaw.f, Pitch.f
If InitEngine3D()
Add3DArchive("Data/Textures", #PB_3DArchive_FileSystem)
Add3DArchive("Data/Scripts",#PB_3DArchive_FileSystem)
Parse3DScripts()
InitSprite()
InitKeyboard()
InitMouse()
If Screen3DRequester()
WorldShadows(#PB_Shadow_Additive)
AmbientColor(0)
; node for Light and Billboard (Sun)
CreateNode(0, 0, 3000, 0)
;Create light
CreateLight(0, RGB(90, 105, 132), 0, 3000, 0)
AttachNodeObject(0, LightID(0))
; Create flare
GetScriptMaterial(0, "Scene/burst")
CreateBillboardGroup(0, MaterialID(0), 2048, 2048)
AddBillboard(0, 0, 0, 3000, 0)
AttachNodeObject(0, BillboardGroupID(0))
; Static geometry
;
; Create Entity
CreateCube(0, 1)
CreateEntity(0, MeshID(0), #PB_Material_None)
; Create Static geometry
CreateStaticGeometry(0, 1000, 1000, 1000, #True)
For i = 0 To 3
Debug "1"
CreateStaticGeometry(#PB_Any, 10000, 10000, 10000, #True)
Debug "2"
Repeat
Until WindowEvent() = 0
Next
For z = -10 To 10
For x = -10 To 10
AddStaticGeometryEntity(0, EntityID(0), x * 1000, 0, z * 1000, 1000, 10, 1000, 0, 0, 0)
Height.f = 200 + Random(800)
AddStaticGeometryEntity(0, EntityID(0), x * 1000, Height/2, z * 1000, 200, Height, 200, 0, Random(360), 0)
Next
Next
; Build the static geometry
BuildStaticGeometry(0)
FreeEntity(0)
; Camera
;
CreateCamera(0, 0, 0, 100, 100)
MoveCamera(0, 2000, 2000, 2000, #PB_Absolute)
CameraLookAt(0, 0, 0, 0)
CameraRange (0, 2, 5000)
CameraFOV (0, 90)
CameraBackColor(0, RGB(90, 105, 132))
Repeat
Screen3DEvents()
If ExamineMouse()
Yaw = -MouseDeltaX() * 0.05
Pitch = -MouseDeltaY() * 0.05
EndIf
If ExamineKeyboard()
If KeyboardPushed(#PB_Key_Up)
MoveCamera(0, 0, 0, -2 * Boost)
ElseIf KeyboardPushed(#PB_Key_Down)
MoveCamera(0, 0, 0, 2 * Boost)
EndIf
If KeyboardPushed(#PB_Key_Left)
MoveCamera(0, -2 * Boost, 0, 0)
ElseIf KeyboardPushed(#PB_Key_Right)
MoveCamera(0, 2 * Boost, 0, 0)
EndIf
EndIf
; Sun
nx = 10000 * Cos(ElapsedMilliseconds() / 2500)
nz = 10000 * Sin(ElapsedMilliseconds() / 2500)
MoveNode(0, nx, 3000, nz, #PB_Absolute)
RotateCamera(0, Pitch, Yaw, 0, #PB_Relative)
RenderWorld()
Screen3DStats()
FlipBuffers()
Until KeyboardPushed(#PB_Key_Escape) Or Quit = 1
EndIf
Else
MessageRequester("Error", "The 3D Engine can't be initialized", 0)
EndIf
End