Code: Alles auswählen
Global TimerResolution.TIMECAPS
Procedure Timer_Init()
Global Dim TimerHandles.l(15)
Global Dim TimerProcedures.l(15)
Protected err.l = timeGetDevCaps_(@TimerResolution, SizeOf(TIMECAPS))
If err = #TIMERR_NOERROR
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Procedure Timer_End()
Protected I.l
timeEndPeriod_(TimerResolution\wPeriodMin)
For I = 0 To 15
If TimerHandles(I)
timeKillEvent_(TimerHandles(I))
EndIf
Next
EndProcedure
Procedure Timer_Callback(TimerHandle, Message, TimerID, wParam, lParam)
If TimerProcedures(TimerID)
CallFunctionFast(TimerProcedures(TimerID))
EndIf
EndProcedure
Procedure TimerStart(TimerID.l, Delay.l, ProcAddr.l)
If TimerID > 15 Or TimerID < 0 : ProcedureReturn #False : EndIf
If TimerHandles(TimerID)
timeKillEvent_(TimerHandles(TimerID))
EndIf
TimerProcedures(TimerID) = ProcAddr
TimerHandles(TimerID) = timeSetEvent_(Delay, 0, @Timer_Callback(), TimerID, #TIME_PERIODIC)
ProcedureReturn TimerHandles(TimerID)
EndProcedure
Procedure TimerStop(TimerID.l)
If TimerID > 15 Or TimerID < 0 : ProcedureReturn #False : EndIf
If TimerHandles(TimerID)
timeKillEvent_(TimerHandles(TimerID))
ProcedureReturn #True
EndIf
ProcedureReturn #False
EndProcedure
Procedure TimerGetMaxRes()
ProcedureReturn TimerResolution\wPeriodMax
EndProcedure
Procedure TimerGetMinRes()
ProcedureReturn TimerResolution\wPeriodMin
EndProcedure
InitEngine3D()
InitSprite()
InitKeyboard()
InitMouse()
ExamineDesktops()
OpenWindow(0,0,0,1024,768,"3D-Editor by Thomas Brüggemann", #PB_Window_MinimizeGadget)
OpenWindowedScreen(WindowID(0), 71, 0, 953, 768, 0, 0, 0)
SetWindowState(0, #PB_Window_Maximize)
CreateGadgetList(WindowID(0))
ButtonGadget(0, 0, 0, 70, 30, "Neuer Stein")
TextGadget(1, 0, 31, 70, 20, "Verschiebung:",#PB_Text_Center)
StringGadget(2, 0, 51, 50, 20, "100",#PB_String_Numeric )
StringGadget(3, 0, 71, 50, 20, "100",#PB_String_Numeric )
StringGadget(4, 0, 91, 50, 20, "100",#PB_String_Numeric )
TextGadget(5, 51, 51, 19, 20, "X",#PB_Text_Border|#PB_Text_Center)
TextGadget(6, 51, 71, 19, 20, "Y",#PB_Text_Border|#PB_Text_Center)
TextGadget(7, 51, 91, 19, 20, "Z",#PB_Text_Border|#PB_Text_Center)
TextGadget(8, 0, 111, 70, 20, "Drehung:",#PB_Text_Center)
StringGadget(9, 0, 131, 50, 20, "0",#PB_String_Numeric )
StringGadget(10, 0, 151, 50, 20, "0",#PB_String_Numeric )
StringGadget(11, 0, 171, 50, 20, "0",#PB_String_Numeric )
TextGadget(12, 51, 131, 19, 20, "X",#PB_Text_Border|#PB_Text_Center)
TextGadget(13, 51, 151, 19, 20, "Y",#PB_Text_Border|#PB_Text_Center)
TextGadget(14, 51, 171, 19, 20, "Z",#PB_Text_Border|#PB_Text_Center)
TextGadget(15, 0, 191, 70, 20, "Skallierung:",#PB_Text_Center)
StringGadget(16, 0, 211, 50, 20, "100",#PB_String_Numeric )
StringGadget(17, 0, 231, 50, 20, "100",#PB_String_Numeric )
StringGadget(18, 0, 251, 50, 20, "100",#PB_String_Numeric )
TextGadget(19, 51, 211, 19, 20, "X",#PB_Text_Border|#PB_Text_Center)
TextGadget(20, 51, 231, 19, 20, "Y",#PB_Text_Border|#PB_Text_Center)
TextGadget(21, 51, 251, 19, 20, "Z",#PB_Text_Border|#PB_Text_Center)
Structure stein
x.d
y.d
z.d
zoomx.d
zoomy.d
zoomz.d
winkelx.d
winkely.d
an.d
EndStructure
Dim welt.stein(1000)
Procedure TimerProc()
RenderWorld()
FlipBuffers()
EndProcedure
Procedure window()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
EndSelect
ForEver
EndProcedure
;CreateCamera(0, 12, 0, 44, 50)
;CreateCamera(1, 58, 0, 44, 50)
;CreateCamera(2, 12, 50, 44, 50)
;CreateCamera(3, 58, 50, 44, 50)
CreateCamera(0, 0, 0, 50, 50)
CreateCamera(1, 50, 0, 50, 50)
CreateCamera(2, 0, 50, 50, 50)
CreateCamera(3, 50, 50, 50, 50)
CameraBackColor(0, RGB(255,0,0))
Timer_Init()
TimerStart(1,1000, @TimerProc())
window()
Timer_End()