[CODE] FullScreen Debug
Verfasst: 26.05.2009 01:34
das Thema kam heute (astronomisch: gestern) auf, und mich hatte es gereizt,
deswegen hab ich schnell zwei Procs gebastelt, mit denen man auf dem FullScreen
eine Debug-Ausgabe realisieren kann.
die gewünschten Ausgaben können an jeder Stelle des Codes in die Queue gepusht werden,
und werden dann in einem Rutsch auf den Screen geDrawt.
deswegen hab ich schnell zwei Procs gebastelt, mit denen man auf dem FullScreen
eine Debug-Ausgabe realisieren kann.
die gewünschten Ausgaben können an jeder Stelle des Codes in die Queue gepusht werden,
und werden dann in einem Rutsch auf den Screen geDrawt.
Code: Alles auswählen
;***************************************************************
;***
;*** FullScreen Debug
;***
;*** PB 4.3x
;***
;*** by Kaeru Gaman, 2009-05-25
;***
;***************************************************************
InitSprite()
InitKeyboard()
OpenScreen( 1024, 768, 32, "ScreenDebug" )
;***************************************************************
EnableExplicit
NewList DebugLine.s()
#DebugLineStep = 16
Procedure NextDebugLine( Out.s )
Shared DebugLine.s()
AddElement(DebugLine())
DebugLine() = Out
EndProcedure
Procedure DrawDebug( DBX.l, DBY.l, DBCol.l = $FFFFFF )
Shared DebugLine.s()
Protected LineY = 0
DrawingMode( #PB_2DDrawing_Transparent )
FrontColor( DBCol )
ForEach DebugLine()
DrawText( DBX, DBY + LineY * #DebugLineStep, DebugLine() )
LineY +1
Next
ClearList( DebugLine() )
EndProcedure
DisableExplicit
;***************************************************************
PX = 512
PY = 384
Repeat
LastTimer = Timer
Timer = ElapsedMilliseconds()
Duration = Timer - LastTimer
If Duration = 0
Duration = 1
EndIf
FPS = 1000 / Duration
ExamineKeyboard()
If KeyboardPushed( #PB_Key_Up )
PY -2
EndIf
If KeyboardPushed( #PB_Key_Down )
PY +2
EndIf
NextDebugLine( "PX = "+Str(PX) )
If KeyboardPushed( #PB_Key_Left )
PX -2
EndIf
If KeyboardPushed( #PB_Key_Right )
PX +2
EndIf
NextDebugLine( "PY = "+Str(PY) )
If KeyboardPushed( #PB_Key_Escape )
EXIT = 1
EndIf
NextDebugLine( "D = " + Str( Duration ) + "ms" )
NextDebugLine( Str( FPS ) + " FpS" )
ClearScreen( $201008 )
StartDrawing( ScreenOutput() )
Box( PX, PY, 32, 32, $0FF0FF )
DrawDebug( 0,0, $FFF000 )
StopDrawing()
FlipBuffers()
Until EXIT
End