AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

8Bit Game Engine

Ein Thema von milos · begonnen am 11. Jan 2014 · letzter Beitrag vom 14. Jan 2014
Antwort Antwort
Seite 2 von 2     12
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

AW: 8Bit Game Engine

  Alt 11. Jan 2014, 18:55
Sägst du dafür was von der CPU ab?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
494 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: 8Bit Game Engine

  Alt 11. Jan 2014, 19:15
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
Milos
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.420 Beiträge
 
Delphi 10.4 Sydney
 
#13

AW: 8Bit Game Engine

  Alt 11. Jan 2014, 21:07
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:
http://docwiki.embarcadero.com/RADSt...henfl%C3%A4che

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);
...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
494 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: 8Bit Game Engine

  Alt 12. Jan 2014, 00:59
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
Milos
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#15

AW: 8Bit Game Engine

  Alt 12. Jan 2014, 02:13
@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.
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
8.420 Beiträge
 
Delphi 10.4 Sydney
 
#16

AW: 8Bit Game Engine

  Alt 12. Jan 2014, 07:11
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.
Dann müsstest du den Code einmal zeigen, denn der oben angehängte erzeugt den TDirect2DCanvas im Paint jedes Mal neu. (Und das ist die erste Variante.)
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
494 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: 8Bit Game Engine

  Alt 12. Jan 2014, 09:28
@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
Milos
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
2.957 Beiträge
 
Delphi 10.4 Sydney
 
#18

AW: 8Bit Game Engine

  Alt 13. Jan 2014, 11:16
@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?
Ich habe mal mit deinen Code herumgespielt und ein bisschen refaktorisiert.
Eine Möglichkeit auf WMPaint und WMSize zu reagieren siehst du im Anhang.
Angehängte Dateien
Dateityp: zip PixelFrost.zip (6,4 KB, 15x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
494 Beiträge
 
Delphi 10.4 Sydney
 
#19

AW: 8Bit Game Engine

  Alt 14. Jan 2014, 00:46
Cool, vielen dank

Hat mir nun das Prinzip der 2. Methode erklärt

Edit: Wie ich sehe, hast du die Qualität des Codes auch noch verbessert. Vielen dank dafür
Milos

Geändert von milos (14. Jan 2014 um 03:33 Uhr)
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf