GPI hat geschrieben:Gosub FPS
gewöhn dir das ganz schnell ab! Goto und Gosub sind in höheren Programmiersprachen no-gos und können gerade bei größeren Projekten erhebliche Probleme verursachen.
Ist wie mit den Flugzeug - das hat auch einen Schleudersitz - aber deswegen benutzt man ihn nicht dauernt.
PureBasic ist aber Basic, und keine "höhere" Programmiersprache

Aber selbst im Codearchiv steht das so drinnen:
http://www.purearea.net/pb/CodeArchiv/G ... ate/FPS.pb
Edit: Ich denke, dass es nicht im Sinne des Erfinders ist, dass jetzt der ganze Bildschirm voller roter, blauer und grüner Pixel ist.
Code: Alles auswählen
;- Initialisierungen
InitSprite()
InitKeyboard()
InitMouse()
InitEngine3D()
UsePNGImageDecoder()
Global screen = 0 ;0 = Startbildschirm, 1 = Spiel, 2 = Pause
hWnd = OpenWindow(#PB_Any, 0, 0, 800, 600, #Name, #PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
If hWnd
hScr = OpenWindowedScreen(WindowID(hWnd), 0, 0, WindowWidth(hWnd), WindowHeight(hWnd), 1, 0, 0)
If hScr = 0
MessageRequester(#Name, "Can't initialize screen!")
End
EndIf
sMouse = LoadSprite(#PB_Any, GetPathPart(ProgramFilename())+"sprites/mouse.png")
If sMouse = 0
MessageRequester(#Name, "Failed to load "+GetPathPart(ProgramFilename())+"sprites/mouse.png!")
End
EndIf
TransparentSpriteColor(sMouse, RGB(255, 0, 255))
Repeat
Repeat
hEvent = WindowEvent()
Select hEvent
Case #PB_Event_CloseWindow
End
EndSelect
Until hEvent = 0
ClearScreen(RGB(0, 0, 0))
RenderWorld()
Select screen
Case 0 ;- Startbildschirm
Gosub FPS
StartDrawing(ScreenOutput())
DrawText(0, 0, FPS$+" FPS", RGB(0, 255, 0), RGB(0, 0, 0))
StopDrawing()
ExamineMouse()
mouseX = MouseX()
mouseY = MouseY()
DisplayTransparentSprite(sMouse, MouseX(), MouseY())
ExamineKeyboard()
If KeyboardReleased(#PB_Key_Escape)
End
EndIf
EndSelect
FlipBuffers()
Delay(20)
ForEver
EndIf
FPS:
If sek = Val(FormatDate("%ss", Date()))
FPS + 1
Else
FPS$ = Str(FPS)
FPS = 0
EndIf
sek = Val(FormatDate("%ss", Date()))
Return