![]()
Lieber Besucher, herzlich willkommen bei: Visual-Basic-Forum VB-Paradise.de. Falls dies dein erster Besuch auf dieser Seite ist, lies bitte die Hilfe durch. Dort wird dir die Bedienung dieser Seite näher erläutert. Darüber hinaus solltest du dich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutze das Registrierungsformular, um dich zu registrieren oder informiere dich ausführlich über den Registrierungsvorgang. Falls du dich bereits zu einem früheren Zeitpunkt registriert hast, kannst du dich hier anmelden.
Zitat
ein Threading.Thread.Sleep(10) eingebaut, damit die FPS ungefähr bei 60 liegen
Zitat
Da habe ich ~6 Frames pro Sekunde
Zitat
Das ist genauso schlimm wie die Threaded-Variante
Zitat
Dabei habe ich leider keinen Ansatz, wie ich es anstellen könnte die FPS gescheit konstant zu halten.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »FreakJNS« (24. März 2012, 14:30)
|
|
Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 |
2 GameTime Variablen: renderTime, tickTime
Solange aktiv:
loopStart = aktuelle Zeit
tickTime aktualisieren
Game.Tick aufrufen
renderTime aktualisieren
Wenn der FrameLimiter aktiv ist und weniger Zeit verstrichen ist, als die Zielframerate, die erreicht werden soll:
Game.Render aufrufen
Solange loopStart - aktuelle Zeit < Zielframerate
nichts tun
|
|
|
Quellcode |
1 2 3 4 5 6 7 |
e.Graphics.CompositingMode = CompositingMode.SourceCopy e.Graphics.CompositingQuality = CompositingQuality.HighSpeed e.Graphics.InterpolationMode = InterpolationMode.NearestNeighbor e.Graphics.SmoothingMode = SmoothingMode.HighSpeed e.Graphics.PixelOffsetMode = PixelOffsetMode.HighSpeed e.Graphics.DrawImageUnscaled(Me.backBuffer, 0, 0, Me.backBuffer.Width, Me.backBuffer.Height) |


|
|
Visual Basic Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
Dim renderer As BufferedGraphics Sub Form_Shown() renderer = BufferedGraphicsManager.Current.Allocate(Me.CreateGraphics(), Me.ClipRectangle) renderThread = New Threading.Thread(AddressOf render) renderThread.Start() End Sub Sub Form_Paint() halt.Reset() ' ManualResetEvent Try renderer.Render() Catch End Try halt.Set() Threading.Thread.Sleep(10) Me.Invalidate() End Sub Sub render() Do halt.Wait() Try Dim g = renderer.Graphics() ' Hier zeichen Code halt.Wait() Loop End Sub |

|
|
Visual Basic Quellcode |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Public Interface In1000Interface #Region "Propertys" ReadOnly Property Version As Version ReadOnly Property Name As String ReadOnly Property Creater As String ReadOnly Property Image As Image ReadOnly Property Description As String ReadOnly Property PluginType As EPluginType Property IdentityNumber As Guid #End Region #Region "Enums" Enum EPluginType Game = 0 End Enum #End Region #Region "Öffentliche Methoden" Sub init(ByVal instance As MainForm.Connection, ByVal guid As Guid) Sub Load() Sub UnLoad() Sub MainEvent(ByVal Action As n1000.Game.Action, ByVal ParamArray params() As Object) #End Region #Region "Private Methoden" #End Region #Region "Private Funktionen" #End Region End Interface |