![]() |
AW: 8Bit Game Engine
Sägst du dafür was von der CPU ab? :mrgreen:
|
AW: 8Bit Game Engine
Könnte man meinen, wenn man bedenkt das die NES mit 256x240 soweit ich weiss 50 FPS rendern konnte und die Engine es nicht mal mit 128x72 auf 30 schafft :D
|
AW: 8Bit Game Engine
Die vielen Aufrufe von FillRect machen das ganze natürlich nicht gerade schnell.
Zudem müssen bei der gewählten Vorgehensweise jedes Mal beim Zeichnen die Zeichenobjekte neu erstellt werden. Ich würde hier eher die zweite Variante aus der Dokumentation wählen, das sollte schneller sein: ![]() Außerdem ist Antialiasing standardmäßig an, wird hier aber gar nicht benötigt. Das zu deaktivieren sollte das ganze mehr als doppelt so schnell machen, je nach Grafikkarte. Dafür reicht vor dem BeginDraw:
Delphi-Quellcode:
Drawer.Canvas.RenderTarget.SetAntialiasMode(D2D1_ANTIALIAS_MODE_ALIASED);
... |
AW: 8Bit Game Engine
Hi,
danke für die Antwort. Der Tipp mit dem Antialiasing hat die Perforamnce wirklich um fast das doppelte gesteigert :) Meinst du mit der 2. Variante, den Bereich in "Exklusive Verwendung der Direct2D-Zeichenfläche"? Weil mein Code funktioniert so wie der Code in der 2. Codebox in der Dokumentation. MfG |
AW: 8Bit Game Engine
@milos
Ich hab früher für den C64 etliche Games programmiert. Wenn du ein Engine in der Richtung programmieren willst, dann mach es nicht zu gut. Laß es einfach sein. Auf der anderen Seite auch nicht zu einfach. Es hat keinen Grund die billigen Grafik von damals zu simulieren. Was aber - um mal bei dem C64 zu bleiben - der C64'er besonderes hatte, das waren Sprites. Das war der Unterschied. Man musste sich nicht einen abmühen und um Dublebuffer kümmern um paar Objekte auf dem Bildschirm zu bewegen, man hat dem Sprite ein Bild zugewiesen und musste ihn nur noch auf dem Bildschirm bewegen. Und wenn sich zwei berührten, gab es eine Info. Mehr hatten die alten Kisten nicht drauf. Der Rest war das Können der Programmierer. |
AW: 8Bit Game Engine
Zitat:
|
AW: 8Bit Game Engine
@Popov: An Sprites habe ich auch schon gedacht, werde ich aber erst implementieren sobald sich die Performance (stark) verbessert hat. Bin mittlerweile bei ca 45FPS mit einer Auflösung von 128x72, was nicht gerade viel ist ^^
@jaenicke: Ahh du meintest wohl doch den 3. Codeteil. Habe es mal verucht so einzubauen, jedoch habe ich probleme funktionen wie WMPaint und WMSize von einem anderen Objekt aus meiner Form zuzuweisen. Geht das überhaupt, oder muss ich dies direkt in der Form klasse tun? MfG |
AW: 8Bit Game Engine
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
Eine Möglichkeit auf WMPaint und WMSize zu reagieren siehst du im Anhang. |
AW: 8Bit Game Engine
Cool, vielen dank :)
Hat mir nun das Prinzip der 2. Methode erklärt :D Edit: Wie ich sehe, hast du die Qualität des Codes auch noch verbessert. Vielen dank dafür ;) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz