Wieso schreiben so viele mich hier immer mit 'k'?ts-soft hat geschrieben:NickTheQuick hat die ganz schnellen Durchläufe übersehen, dann gibt es DivByZero
Aber hast Recht. Sowas darf nicht fehlen.
Wieso schreiben so viele mich hier immer mit 'k'?ts-soft hat geschrieben:NickTheQuick hat die ganz schnellen Durchläufe übersehen, dann gibt es DivByZero
Code: Alles auswählen
Procedure FPS()
Static NextSecond
Static Counter
Static FPS
Protected Now
Now = ElapsedMilliseconds()
If Now >= NextSecond
FPS = Counter
If NextSecond = 0 : NextSecond = Now : EndIf
NextSecond + 1000
Counter = 1
Else
Counter + 1
EndIf
ProcedureReturn FPS
EndProcedure2DDrawing, und gerade die Ausgabe von Text, ist sehr langsam.Velox hat geschrieben:und beim öffnen meiner Entwickler-Konsole welche mittels Hardwarebeschleunigung angezeigt wird und dann der Text darin mit 2DDrawing anzeigt.
Nur der Text löst scheinbar die Hz von (Standard von meinem Monitor 85Hz) 85Hz auf etwa 75-70Hz.
Geht das oder hat habe ich da wirklich nur sehr perfomancelastige Programmierung betrieben?
Code: Alles auswählen
If InitSprite() = 0 Or InitKeyboard() = 0 Or InitSprite3D() = 0 Or InitSound() = 0 Or InitMouse() = 0
MessageRequester( "Error", "Can't open DirectX 7 or later", 0 )
End
EndIf
If OpenScreen( 1024, 768, 32, "Test3D",0) = 0
MessageRequester( "Error", "Can't open Screen", 0 )
End
EndIf
EnableExplicit
Define x.l
Define Fr.l
Define FPS.l
Define Time.i
Define Show.b
ExamineDesktops()
Fr = DesktopFrequency( 0 )
Procedure FPS()
Static NextSecond
Static Counter
Static FPS
Protected Now
Now = ElapsedMilliseconds()
If Now >= NextSecond
FPS = Counter
If NextSecond = 0 : NextSecond = Now : EndIf
NextSecond + 1000
Counter = 1
Else
Counter + 1
EndIf
ProcedureReturn FPS
EndProcedure
Procedure CollCheck()
Static i.l
For I = 1 To 100000
Next
EndProcedure
Repeat
ClearScreen( 0 )
StartDrawing( ScreenOutput() )
DrawingMode( #PB_2DDrawing_Transparent )
FrontColor( RGB( 200, 0, 0 ) )
DrawText( x, 50, "Test")
DrawText( x, 700, "Test")
x + 1
If x > 1024: x = 0: EndIf
FrontColor( RGB( 255, 255, 255 ) )
DrawText( 360,100, " Spacetaste drücken um zu sehen was passiert ! ")
DrawText( 350, 300, " Der Monitor hat eine Frequenz von " + Str( Fr ) + " Hz " )
DrawText( 200, 320, " Und das Programm schafft im Moment " + Str( FPS() ) + " Bilder pro Sekunde an die Grafikkarte zu schicken ." )
If Show
DrawText( 220, 360, " Jetzt braucht das Programm etwas länder, da wir nun die Procedure CollCheck() aufrufen.." )
Else
DrawText( 400, 360, " Jetzt hamwa voll Speed " )
EndIf
StopDrawing()
If Show
CollCheck()
EndIf
FlipBuffers()
ExamineKeyboard()
If KeyboardReleased( #PB_Key_Space )
If Show
Show = 0
Else
Show = 1
EndIf
EndIf
Until KeyboardPushed( #PB_Key_Escape )
End