Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi 2D-Spiele, welche Komponente? (https://www.delphipraxis.net/67924-2d-spiele-welche-komponente.html)

LiS 21. Apr 2006 21:37


2D-Spiele, welche Komponente?
 
Hallo!

Ich programmiere öfter mal ein Spiel mit Delphi, bei dem die Grafik dann in einem Image angezeigt wird. Dabei merke ich allerdings, dass es schnell zu Flimmern oder Ruckeln kommt. Welche Alternativen gibt es denn so um Grafik anzuzeigen, und welche Vorteile und Nachteile haben sie?

pacman1986 21. Apr 2006 21:38

Re: 2D-Spiele, welche Komponente?
 
das löst ein glaubenskrieg aus
delphiX empfehl ich OpenGl anderer ^^

LiS 21. Apr 2006 21:42

Re: 2D-Spiele, welche Komponente?
 
Ah, danke für die schnelle Antwort :-D
Unterscheiden die sich in irgendwelchen wichtigen Dingen voneinander, und wie schwer sind die zu erlernen? Gibt es dafür vielleicht Tutorials?

arbu man 21. Apr 2006 21:45

Re: 2D-Spiele, welche Komponente?
 
delphiX ist extrem einfach zu erlernen es gibt auch hier im forum ein tutorial einfach mal die suche bemühen

3_of_8 21. Apr 2006 21:46

Re: 2D-Spiele, welche Komponente?
 
Ich persönlich finde, dass OpenGL schwerer zu verstehen ist. Aber das ist Ansichtssache. Bemühe doch mal die Forensuche nach Hier im Forum suchenOpenGL, Hier im Forum suchenDelphiGL, Hier im Forum suchenDirectX, Hier im Forum suchenDelphiX.

arbu man 21. Apr 2006 21:52

Re: 2D-Spiele, welche Komponente?
 
Was auch gut für Spiele ist, ist Hier im Forum suchenGLScene aber mehr für 3D Spiele (kann aber auch 2D).
GLScene ist ein OpenGL Framework, dass die meisten Sachen stark vereinfacht. Mit GLScene kann man eben auch einfache 2D Spiele mit wunderbarer 3D Grafik machen ohne viel mehraufwand.

Phobeus 22. Apr 2006 08:10

Re: 2D-Spiele, welche Komponente?
 
Okay, dann melde ich mich mal als "anderer" ;)
OpenGL im 2D-Bereich wird vermutlich nur dann sinnvoll sein, wenn Du a) auch 3D willst, b) sehr intensiv mit Blending arbeiten willst oder c) planst pseudi 3D (z.B. Iso-Ansicht) zu nutzen (das geht einfacher...). Um nur ein paar Objekte über den Bildschirm zu bewegen ist es evtl. ein wenig overpowered. Wichtig ist IMAO folgendes zu begreifen: Direct3D/OpenGL ist nicht schwer, es setzt einen soliden Wissensstand an Programmierung, Mathe und Struktur vorraus. Insbesondere bei einem Spiel sollte man davon reichlich mitbringen. Erzeugt etwas die Illusion mit weniger auskommen zu können, so wird man zwangsläufig irgendwann gegen eine Wand fahren. Für diese Aussage fahre ich regelmäßig Kritik ein - den Gegenbeweis hat mir jedoch auch noch niemand erbracht.

Mein Tipp geht daher in die Richtung eine "richtige" Grafik-API zu erlernen, da man das dort gewonnene Wissen universell anwenden kann (z.B. wenn man plötzlich doch C++, Java, Python etc. verwendet) und tendenziell weniger für den Papierkorb lernt. Ich persönlich favorisiere hierbei SDL, dass relativ überschaubar, plattformunabhägig ist und auch zahlreiche OpenSource-Beispiele bietet. Zudem kann dieses Wissen als solide Basis für eine spätere OpenGL-Applikation weiterverwendet werden. Header (mit Demos) gibt es bei den Jedis, alternativ sind Header und ein Beispiel (sfighter - primitiver Parallaxscroller) in der DGLSDK enthalten. Der von mir empfohlene Weg ist aber eindeutig mit "Arbeit" versehen - das betone ich hier lieber nochmals... ;)

Nils_13 22. Apr 2006 08:19

Re: 2D-Spiele, welche Komponente?
 
Ich sag da nur: GLXTreem. Die Komponenten sind besser als DelphiX, da man damit mehr machen kann und sie nicht veraltet sind. Von der GLScene kann ich dir nur abraten, da sie wie schon gesagt mehr für 3D-Spiele gemacht wurde und sie ziemlich oft Fehler macht, deshalb, wenn ein Fehler kommt, der dir nicht erklärlich ist, mach dir eine Tasse Kaffee und lehn dich zurück, später läuft es dann wieder. DelphiX ist auch sehr gut, aber ich würde beide Komponenten (GLXTreem und DelphiX) ausprobieren, mit GLXTreem musst du dich halt mehr befassen, ist aber eine schöne Komponentensammlung.

LiS 23. Apr 2006 20:20

Re: 2D-Spiele, welche Komponente?
 
Danke für die vielen Ratschläge, aber ich brauch wirklich nur ganz simple 2D Grafik, auch ohne Effekte und so, eben wie es früher mal war... :wink:

Phobeus 24. Apr 2006 09:18

Re: 2D-Spiele, welche Komponente?
 
Um das echte "früher" Feeling zu erreichen, empfehle ich einen Emulator, ein Kasetten-Laufwerk, sowie zwei Leute, die einem im regelmäßigen Takt von 10 Sekunden mit der Peitsche schlagen. So bekommst Du garantiert das echte "orginal" Feeling. Aber trotz allem scherzes, genau ein solcher Gedanke zuckt mir durch den Kopf wenn jemand sagt: ich wills wie früher machen. Es hat sich viel verändert und wer heutzutage mit 2D eine Iso-Engine schreibt ist zweifelsfrei ein Masochist, da sich solche Aufgaben heutzutage mit wesentlich weniger Aufwand in 3D erledigen läßt. Gleiches kann auch gelten bei Modellen, die man nun so drehen kann, wie man will und nicht einen Künstler braucht, der die Grafik aus allen Perspektiven erzeugen muss (um einen dann vor die Wand zu stellen, wenn man glaubt, dass die Szene besser aussehen könnte, wenn man die Kamera um 5° neigen will). An Hand dieser kleinen Beispiele kann man sehen, dass nicht in jedem Fall "früher" undbedingt gleichzusetzen ist mit besser oder leichter. Den Komplexität entsteht nicht durch alt/neu oder 2D/3D. Wenn Du eine 3D-Szene hast und dort eine Achse fixierst, so dass Du die Kamera nur auf zwei Schienen fährst ohne dabei die Kamera um alle Achsen drehen zu lassen, erreicht man eine Mathematik, die nahezu identisch ist mit der von 2D. Und Mathematik ist genau das, was die meisten Leute bei einem Spiel unterschätzen und was die wirkliche schwere ausmacht.

Erschreckenderweise sind jedoch viele Bezüge zwischen "früher" und dem heute ziemlich identisch - allerdings solltest Du einmal genau sagen, was Dir aktuell im Sinne schwebt um etwas abschließend empfehlen zu können. Reines 2D, dass dem früher am dichtesten kommt wirst Du mit DDraw oder SDL erreichen. Auch wenn Du nicht planst über dieses Level hinaus zu gehen oder dich weiter damit zu beschäftigen kann (!!!) sich ein Blick auf DelphiX lohnen. Von allem drei Optionen ist dies sicherlich der leichteste (und zugleich beschränkteste und frustreichste) Weg.

mimi 30. Apr 2006 13:35

Re: 2D-Spiele, welche Komponente?
 
Ich würde für einfach 2d spiel Canvas es gibt da einige möglichkeiten das ruckeln und flimmer weg zu bekommen und für solche sachen wi Snake und kleine 2 D spile ist das aussreichend. du musst aber immer etwas vorarbeit leisten. (und das ist nicht wenig aber auch nicht viel :-D )

Nils_13 1. Mai 2006 09:47

Re: 2D-Spiele, welche Komponente?
 
@mimi: Wie bekommt man so etwas weg, sagen wir mal bei einer Visualisierung, die mit Canvas alle x-Millisekunden gezeichnet wird ? DoubleBuffered hilft da nicht weiter.

Skullschildi 1. Mai 2006 09:58

Re: 2D-Spiele, welche Komponente?
 
ich find das gerede über delphix recht interessant, muss schon sagen. WILL ICH HABEN!!! wo bekomm ich das her, kennt jemand einen Link zum downloaden oder so?

ichbins 1. Mai 2006 10:06

Re: 2D-Spiele, welche Komponente?
 
Bei Google ;)

ich will ja mal nicht so sein: Link


DelphiX ist eigentlich so einfach wie Canvas, vllt auch noch ein klein wenig einfacher ;)



fürs Tutorial: Einfach mal in der Sparte "Tutorials/Kurse" nach DelphiX suchen: Ergebnisse

mimi 1. Mai 2006 10:22

Re: 2D-Spiele, welche Komponente?
 
@Nils_13
du musst alles in ein unsichtbares TBitMap zeichnen und dieses Bitmap wird jedes mal gelert und neu "bemalt" aus dem array z.b. so

Delphi-Quellcode:
bitmap.canvas.pen:=clBlack;
bitmap.canvas.brush:=clBlack;
bitmap.canvas.Rectangle(0,0,paintbox1.Width, paintbox1.height)
bitmap.canvas.pen:=clwhit;
bitmap.canvas.brush:=clBlack;

// jetzt alles objekte zeichnen du du hast z.b. aus einem array aus und zwar in das bitmap.
// jetzt musst du nur noch alles was in den bitmap stetht kopieren und zwar in die paintbox:
PaintBox1.canvas.copyrect(rect(0,paintbox1.Width,paintbox1.height),bitmpap.canvas);
so änlich würde ich das machen den code schreibst am besten in das onIDL ereignis oder ein Timer(aber der braucht zuviel cpu leistung habe ich gemerkt).

was wichtig ist, sind die ersten zeilen:
du musst alles löschen und nochmals neuzeichnen.....

ich hoffe du hast verstanden worauf es ankommt, wenn nicht frag, ich stelle auch gerne meine unit hir rein die arbeitet nach diesem prinzip kann aber etwas mehr....

R2D2 1. Mai 2006 10:36

Re: 2D-Spiele, welche Komponente?
 
Auch ich würde dir DelphiX empfehlen.

mimi 1. Mai 2006 18:03

Re: 2D-Spiele, welche Komponente?
 
ja für den anfang reicht das vollkommen aus... aber ich würde uDelphiX nehmen ist neuer und wird glaube ich auch abundzu geuptet


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz