PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Surche einfache 2d Gfx API für Linux (und vielleich auch Windows)


SimonX
2008-12-31, 04:50:09
Was ich machen will ist eine Simulation zu visualisieren. Dafür suche ich eine einfache 2d API, mit der man:

- Sprites mit alpha-blending bewegen kann.
- einen sich bewegenden grossen Hintergrund darstellen kann. (So wegen Scrolling)
- Einfache Mouse-pointer abfragen machen kann (bzw. callbacks für clicks auf sprites, die nicht rechteckig sind)

Gibts da was standardiertes, das auch einfach ist. Oder sollte man gleich auf OpenGL gehen. Ich bin ein Purist, also würde ich es gerne vermeinden Eierlegendewollmichsau Engines zu benutzen, von denen ich nur 0.1% der Funktionalität benutzen würde.

Gast
2008-12-31, 06:28:30
Java 2D wäre ne gute Idee

The_Invisible
2008-12-31, 08:28:47
oder SDL http://www.libsdl.org/

mfg

SimonX
2008-12-31, 16:21:20
Also, die Simulation ist in C++.

Ich habe mir mal SDL genauer angeschaut und soweit ich das sehe (http://de.wikibooks.org/wiki/SDL:_Tux-Programm) muss man den Screen immer komplet neu zeichnen. Wenn ich also einen sehr grossen virtuellen Screen habe (10000x10000), dann muss ich irgendwie selbst entweder das refresh des sichtbaren Bereichs managen, da ich nicht glaube, das ein komplet Refresh bei der grösse noch geht. Ausserdem scheint SDL nur rechteckige Kollisions-boxen zu haben und von alpha-blending (ausser dem transparent color key) habe ich nichts gesehen.

Gibt es da eine einfache library, die bischen mehr Highlevel bereitstellt?

Coda
2008-12-31, 17:23:02
10000x10000 kannst du mit SDL sowieso vergessen, weil die GPUs das nicht als Rendertarget unterstützen. Darf man fragen was die Anwendung dafür sein soll?

Falls du "normale" Monitorauflösungen meinst (also auch 2560x1600) ist es überhaupt kein Problem immer alles neu zu zeichnen.

SimonX
2008-12-31, 21:19:05
Es geht um eine Simulation einer einfachen Welt mit einfachen simulierten Bewohnern.

Ich möchte den Bewohnern zusehen können. Ich werde aber nie die ganze Welt sehen, sondern nur Ausschnitte, in die auch reinzoomen möchte.

Einen Bewohner wollte ich als Sprite mit pop-up-text-box (für infos) darstellen. Das Ambiente wollte ich durch einfache farbige Rechtecke visualisieren.

Die Welt wird nicht durch Mausclick verändert, oder so. (erstmal) Es ist also nur eine visualisierung einer Simulation.

Vielleicht sollte ich doch gleich auf eine richtige Game-Engine gehen. Die müsste das ja können. Ich schau mir mal Sauerbraten (http://de.wikipedia.org/wiki/Sauerbraten_Game_Engine) und Qrx (http://orx-project.org/) an.

Gast
2008-12-31, 22:20:29
Es geht um eine Simulation einer einfachen Welt mit einfachen simulierten Bewohnern.

Ich möchte den Bewohnern zusehen können. Ich werde aber nie die ganze Welt sehen, sondern nur Ausschnitte, in die auch reinzoomen möchte.

Einen Bewohner wollte ich als Sprite mit pop-up-text-box (für infos) darstellen. Das Ambiente wollte ich durch einfache farbige Rechtecke visualisieren.

Die Welt wird nicht durch Mausclick verändert, oder so. (erstmal) Es ist also nur eine visualisierung einer Simulation.

Vielleicht sollte ich doch gleich auf eine richtige Game-Engine gehen. Die müsste das ja können. Ich schau mir mal Sauerbraten (http://de.wikipedia.org/wiki/Sauerbraten_Game_Engine) und Qrx (http://orx-project.org/) an.

Evtl. wäre da Pygame was für dich, isne extended SDL, basiert aber auf Python.

Gast
2008-12-31, 22:31:02
Evtl. wäre da Pygame was für dich, isne extended SDL, basiert aber auf Python.
Er will C++

Außerdem ist Python zu langsam.

maximAL
2008-12-31, 23:00:02
Falls du "normale" Monitorauflösungen meinst (also auch 2560x1600) ist es überhaupt kein Problem immer alles neu zu zeichnen.
also meiner erfahrung nach ist SDL schon bei normalen auflösungen und farbtiefen saulahm, sobald man wirklich den gesamten bildschirm neu zeichnen muss.

Gast
2008-12-31, 23:16:04
Er will C++

Außerdem ist Python zu langsam.

Hatte ich verstanden, nur hat ihm niemand eine Alternative angeboten. Pygame in C++ einzubinden sollte aber auch irgendwie möglich sein, gerade weil es auf SDL aufsetzt, oder?! Ansonsten hatte er nicht ausgeschlossen, andere Sprachen zu nutzen.

Hast du ne bessere Idee, ausser die der Kritik, wo der TS sicher besser weiß, wie er entscheidet?

Gast
2009-01-01, 13:14:13
Außerdem ist Python zu langsam.
Weder Python noch SDL sind der Performance letzter Schluß. Allerdings sind diese Kommentare genauso witzlos wie das "Java ist generell zu langsam" Gerede. Problematische Szenarien lassen sich bestimmt generieren, aber ich wette dass für den Anwendungsfall hier sogar die Pentium3-Kiste aus der Signatur absoluter Overkill ist, um mit Pygame oder sonstwas ein paar Sprites und farbige Rechtecke zu zeichnen. :rolleyes:

Pygame ist sehr leicht zugänglich und es gibt hübsche Codebeispiele, es ist freie Software und für beide Plattformen erhältlich.