[GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
[GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
Hat jemand ein Beispiel für einen GameLoop ohne V-Sync/Framelimit ?
- Wie kann man die Render-Funktion timen (FPS & Deltatime) ?
- Wie kann der Prozessor entlastet werden (Delay) ?
- Wie kann man die Render-Funktion timen (FPS & Deltatime) ?
- Wie kann der Prozessor entlastet werden (Delay) ?
Re: [GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
2DRSBasic hat geschrieben:2D oder 3D?
Re: [GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
Mijikai hat geschrieben:Hat jemand ein Beispiel für einen GameLoop ohne V-Sync/Framelimit ?
Code: Alles auswählen
EnableExplicit
InitSprite()
InitMouse()
InitKeyboard()
InitSound()
If OpenScreen(1920, 1080, 32, "Screen")
;SetFrameRate(60)
Repeat
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
ExamineKeyboard()
ExamineMouse()
If KeyboardReleased(#PB_Key_Escape)
End
EndIf
ForEver
EndIf
Das war glaube ich mein schnellster Post. Nur in 11 Sekunden.
\\Edit2:
Ich glaube, es gab mal ein Beispielcode von STARGÅTE, um ohne SetFrameRate das Timing für die Animation und Spielwiedergabe zu steuern.Mijikai hat geschrieben:- Wie kann man die Render-Funktion timen (FPS & Deltatime) ?
Das brauchst du garnicht machen. Bei meinem Beispielcode gibt es 0 %-Prozessorauslastung.Mijikai hat geschrieben:- Wie kann der Prozessor entlastet werden (Delay) ?
Re: [GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
SetFrameRate() hilft mir leider nicht da ich keinen Zugriff auf diese Funktion habe.
Ich suche eine Allgemeingültige Lösung.
Ich suche eine Allgemeingültige Lösung.
Re: [GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
Deshalb schrieb ich, es gibt einen Beispielcode von STARGÅTE. Such mal im Forum.
Ich kann später auch mal suchen.
Ich kann später auch mal suchen.
Re: [GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
Hier wirst du fündig: http://www.purebasic.fr/german/viewtopi ... =4&t=30240
Da gibt es mehrere Lösungen. Einfach mal durchscrollen.
Da gibt es mehrere Lösungen. Einfach mal durchscrollen.
Re: [GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
Also 2D ohne Screen !?
Muss mal suchen
Muss mal suchen
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Re: [GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
Hab ich gelesenRSBasic hat geschrieben:Deshalb schrieb ich, es gibt einen Beispielcode von STARGÅTE. Such mal im Forum.
Ich kann später auch mal suchen.
Wollte noch was zu meiner Antwort hinzufügen aber gegen deine Geschwindigkeit komme ich nicht an
Danke für die rasend schnelle Antwort/en
Genaumk-soft hat geschrieben:Also 2D ohne Screen !?
Muss mal suchen
Ich versuch mal STARGÅTE's Code zu finden.
- Ok war wieder zu langsam
Danke ich schau mir den Link an.
Re: [GameLoop] DeltaTime & FPS ? (kein V-Sync/Framelimit)
Es ist besser mit Frames zu arbeiten um nicht die CPU Last zu hoch zu schrauben...
ACHTUNG! Nicht hypnotisieren lassen...
v2
ACHTUNG! Nicht hypnotisieren lassen...
v2
Code: Alles auswählen
;-
Enumeration windows
#Main
EndEnumeration
Enumeration gadgets
#Canvas
EndEnumeration
Procedure MyDraw()
Static r = 10, add = 10
Protected dx = GadgetWidth(#Canvas)
Protected dy = GadgetHeight(#Canvas)
Protected x = dx >> 1
Protected y = dy >> 1
If StartDrawing(CanvasOutput(#Canvas))
Box(0, 0, dx, dy, $FFFF00)
r + add
If r >= 200
add = -10
ElseIf r <= 10
add = 10
EndIf
Circle(x, y, r, $0000FF)
StopDrawing()
EndIf
EndProcedure
Procedure Main()
Protected event
Protected frames, time, timer
If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, "MyDraw", #PB_Window_SystemMenu)
CanvasGadget(#Canvas, 0, 0, WindowWidth(#Main), WindowHeight(#Main))
Else
End -1
EndIf
frames = 30
time = 1000 / frames
timer = 1
AddWindowTimer(#Main, timer, time)
BindEvent(#PB_Event_Timer, @MyDraw(), #Main, timer)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
EndSelect
ForEver
EndProcedure : Main()
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive