GTK+/Cairo vs. SDL

z.B. wxWidgets, GTK+, Qt, OpenGL, DirectX
Antworten
Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

GTK+/Cairo vs. SDL

Beitrag von +Fuss+ » Sa Mai 16, 2009 9:22 pm

Hallo,

nächstes kleines Projekt steht an:
Beim Starten des Programms, kann man selber ein Männchen etc. zeichnen, Gelenkpunkte sind vorgegeben. Danach macht das Programm einen Screenshot und legt diesen als Vollbild auf das normale Bild. Dann läuft das selbst gezeichnete Männchen quer über den Bildschirm und verwüstet alles was ihm im Weg steht.
Ich weiß das sowas für einen Anfänger nicht unbedingt leicht, vielleicht auch sehr sein kann/wird, aber ich habe ja Zeit. :lol:

Jetzt die Frage: Meint ihr es ist besser wenn ich mit SDL anfange und damit die Figur zeichne, oder ob ich das mit Cairo probieren soll?
Was wären die Vorteile von beiden?
Wo könnte es Probleme geben?

MfG Fuss

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: GTK+/Cairo vs. SDL

Beitrag von Xin » So Mai 17, 2009 6:13 am

+Fuss+ hat geschrieben:nächstes kleines Projekt steht an:
Beim Starten des Programms, kann man selber ein Männchen etc. zeichnen, Gelenkpunkte sind vorgegeben. Danach macht das Programm einen Screenshot und legt diesen als Vollbild auf das normale Bild. Dann läuft das selbst gezeichnete Männchen quer über den Bildschirm und verwüstet alles was ihm im Weg steht.
Wie findest Du heraus, was ihm im Weg steht?
+Fuss+ hat geschrieben:Ich weiß das sowas für einen Anfänger nicht unbedingt leicht, vielleicht auch sehr sein kann/wird, aber ich habe ja Zeit. :lol:

Jetzt die Frage: Meint ihr es ist besser wenn ich mit SDL anfange und damit die Figur zeichne, oder ob ich das mit Cairo probieren soll?
Möchtest Du das Männchen als Vector oder als 2D Grafik darstellen?
Für Vectoren wäre in SDL wohl OpenGL gefragt. Cairo ist eine Vektor-Basierte Library.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
Dirty Oerti
Beiträge: 2229
Registriert: Di Jul 08, 2008 5:05 pm
Wohnort: Thurndorf / Würzburg

Re: GTK+/Cairo vs. SDL

Beitrag von Dirty Oerti » So Mai 17, 2009 8:53 am

Xin hat geschrieben:Wie findest Du heraus, was ihm im Weg steht?
Ist nicht wirklich zum Thema, aber die Idee wollte ich loswerden:

Bildschirmfoto erstellen lassen.
Hintergrundbild/Farbe abfragen lassen.

Bildschirmfoto und Hintergrundbild auf Unterschiede hin vergleichen.
Unterschiedliche Bereiche noch zusammenfassen (Pixelgenaue Kollisionserkennung dürfte blöd werden).
Bei Fragen einfach an daniel[ät]proggen[Punkt]org
Ich helfe gerne! :)
----------
Wenn du ein Licht am Ende des Tunnels siehst, freu dich nicht zu früh! Es könnte ein Zug sein, der auf dich zukommt!
----
It said: "Install Win95 or better ..." So I installed Linux.

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+/Cairo vs. SDL

Beitrag von +Fuss+ » So Mai 17, 2009 11:46 am

Was ist denn der große unterschied zwischen 2D-Grafik und 2 D-Vektor? 3D sollte es nicht werden, weil ich mich mit OpenGL nicht so auskenne. Die Figur soll dann in Teile "zerschnitten" werden, und diese Teile können dann an den zerschnittenen Punkten gegeneinander verdreht werden, so ist die Idee.

Kollisionserkennung brauche ich zuerst nicht. Aber wenn das Männchen dann z.B. gegen den Bildschirmrand tritt, dann kann es ja so aussehen, als ob das Glas des Bildschirms gerissen wäre etc. Aber wegen sollchen Sachen bin ich mir halt nicht so sicher, wie ich das Umsetze das so etwas gezeichnet wird etc.

Weil Zeichnen ist doch mehr die Sache von Cairo und SDL setzt mehr oder weniger nur fertige Bildteile aufeinander? Dann wäre das mit dem Männchen ja eine Sache für SDL und mit den Effekten für Cairo, aber dann hab ich in dem Code nachher ein großes Chaos, wenn ich mich aus ziegtausend verschiedenen Libraries bediene...

MfG Fuss

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: GTK+/Cairo vs. SDL

Beitrag von Xin » Do Mai 21, 2009 8:17 am

+Fuss+ hat geschrieben:Was ist denn der große unterschied zwischen 2D-Grafik und 2 D-Vektor?
Vektorgrafik ist nicht mit Farbpunkten (Pixeln) beschrieben, sondern mit Raumpunkten, zwischen denen Linien sind. CAD ist zum Beispiel Vektorgrafik. ]|Another World ist ein 2D-Vektorgame. Das Spiel erschien 1991 auf dem Amiga und hat auch heute noch seinen besonderen Stil. Da das Spiel auf Vektoren basiert, läuft es heute auf auch auf 1600x1200, obwohl die Grafik seinerzeit für 320x200 ausgelegt war.
+Fuss+ hat geschrieben:3D sollte es nicht werden, weil ich mich mit OpenGL nicht so auskenne. Die Figur soll dann in Teile "zerschnitten" werden, und diese Teile können dann an den zerschnittenen Punkten gegeneinander verdreht werden, so ist die Idee.
OpenGL sind 2D oder 3D Vektoren. Another World kommt auch ohne OpenGL aus, keine Ahnung, ob es das damals überhaupt schon gab ;-)
+Fuss+ hat geschrieben:Weil Zeichnen ist doch mehr die Sache von Cairo und SDL setzt mehr oder weniger nur fertige Bildteile aufeinander? Dann wäre das mit dem Männchen ja eine Sache für SDL und mit den Effekten für Cairo, aber dann hab ich in dem Code nachher ein großes Chaos, wenn ich mich aus ziegtausend verschiedenen Libraries bediene...
Zeichenroutinen zu schreiben, wie eine Linie zu machen, oder einen Kreis (und das möglichst ohne sinus und cosinus...) ist schon eine hübsche Aufgabe.
Vielleicht schreibe ich mal ein paar Artikel darüber.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+/Cairo vs. SDL

Beitrag von +Fuss+ » Do Mai 21, 2009 10:01 am

Xin hat geschrieben:Zeichenroutinen zu schreiben, wie eine Linie zu machen, oder einen Kreis (und das möglichst ohne sinus und cosinus...) ist schon eine hübsche Aufgabe.
Vielleicht schreibe ich mal ein paar Artikel darüber.
Unter Cairo ist das ja ganz leicht. Für eine Linie erst den Punkt an dem Cairo anfangen soll auswählen (cairo_move_to) und dann den Zielpunkt festlegen wohin die Linie gehen soll (cairo_line_to). Für Kreise etc. gibt es extra Funktionen.

Ich habe jetzt mal langsam mit meinem Programm angefangen, aber das Problem wird sein, dass es echt aussehen soll, wenn sich das Männchen (9 Linien + ein Kreis) bewegt. Und dann sollte sich das Männchen ja auch nicht immer in die gleiche Richtung bewegen, sondern zufällig. Aber mal schauen wie weit ich komme.

MfG Fuss

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8858
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: GTK+/Cairo vs. SDL

Beitrag von Xin » Do Mai 21, 2009 10:04 am

+Fuss+ hat geschrieben:
Xin hat geschrieben:Zeichenroutinen zu schreiben, wie eine Linie zu machen, oder einen Kreis (und das möglichst ohne sinus und cosinus...) ist schon eine hübsche Aufgabe.
Vielleicht schreibe ich mal ein paar Artikel darüber.
Unter Cairo ist das ja ganz leicht. Für eine Linie erst den Punkt an dem Cairo anfangen soll auswählen (cairo_move_to) und dann den Zielpunkt festlegen wohin die Linie gehen soll (cairo_line_to). Für Kreise etc. gibt es extra Funktionen.

Ich habe jetzt mal langsam mit meinem Programm angefangen, aber das Problem wird sein, dass es echt aussehen soll, wenn sich das Männchen (9 Linien + ein Kreis) bewegt. Und dann sollte sich das Männchen ja auch nicht immer in die gleiche Richtung bewegen, sondern zufällig. Aber mal schauen wie weit ich komme.
Wenn Cairo von GDK abhängt, dann würde ich mir allerdings tatsächlich SDL ansehen.

Ich habe seinerzeit GDK-kompatible Bitmaps programmiert, eigene Zeichenroutinen, weil meine Routinen deutlich schneller waren als der Aufruf der GDK-Routinen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Benutzeravatar
+Fuss+
Beiträge: 385
Registriert: Fr Nov 14, 2008 8:16 pm

Re: GTK+/Cairo vs. SDL

Beitrag von +Fuss+ » Do Mai 21, 2009 10:58 am

Xin hat geschrieben: Wenn Cairo von GDK abhängt, dann würde ich mir allerdings tatsächlich SDL ansehen.

Ich habe seinerzeit GDK-kompatible Bitmaps programmiert, eigene Zeichenroutinen, weil meine Routinen deutlich schneller waren als der Aufruf der GDK-Routinen.
Jep hängt in meinem Fall von GDK ab. Ich habe das eben auch gemerkt, es stockt doch ganz oft. Ich sehe mir mal SDL an, wollte ich sowieso schon länger mal machen.

MfG Fuss

nufan
Wiki-Moderator
Beiträge: 2557
Registriert: Sa Jul 05, 2008 3:21 pm

Re: GTK+/Cairo vs. SDL

Beitrag von nufan » Do Mai 21, 2009 12:55 pm

Xin hat geschrieben: Zeichenroutinen zu schreiben, wie eine Linie zu machen, oder einen Kreis (und das möglichst ohne sinus und cosinus...) ist schon eine hübsche Aufgabe.
Bresenham-Algorithmus? Der kommt sogar ohne Multiplikation und Division aus ;)
Hier zwei interessante Links:
http://de.wikipedia.org/wiki/Bresenham-Algorithmus
http://wwwisg.cs.uni-magdeburg.de/galle ... enham.html

Zum eigentlichen Thema zurück. Ich kenne zwar Cairo nicht, kann aber SDL sehr empfehlen.

Antworten