Einfachster Weg Grafikdarstellung
-
Hallo,
ich habe ein kleines Simulationsprogramm geschrieben, bisher nur mit WinAPI, also wenig Veranschaulichung der Vorgänge. Deshalb suche ich den einfachsten/schnellsten Weg eine grafische Darstellung der Vorgänge umzusetzen. Es müssten nur einigen Grafiken (die teils übereinander liegen) dargestellt und deren Position geändert werden.
Dafür schien mir DirectX etwas übertrieben. Deshalb suche ich nach einer weniger aufwendigen Variante eine solch "billige" Grafikdarstellung umzusetzen (vor allem wo ich keine Ahnung Grafikprogrammierung habe).Danke für alle Antworten. (Ich weiß, die Frage ist SEHR allgemein, aber genau deshalb stelle ich sie. Mir würden Stichwörter reichen...)
-
Am einfachsten geht es dir mit der sdl (www.libsdl.org), aber wie gut die sich mit der winapi verträgt kann ich dir so nicht sagen.
Wenn es da Probleme gibt, dann bliebe dir noch die GDI (Teil der Winapi, solltest bei google genug Tuts finden)
-
Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Spiele-/Grafikprogrammierung verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
Danke für die Antwort, SDL ist genau das was ich gesucht habe! Im Vergleich zur WinAPI ist das ein riesen Unterschied, so einfach hatte ich es noch noch nie die Grafik über das Programm zu hauen :). Klappt alles Problems los und ohne große Einarbeitung...
-
Ich muss meinen Beitrag leider noch mal etwas ergänzen :).
Zwar steht nun die Grafik meines Programms, jedoch stellt sich die Frage, wie ich die Oberfläche bezüglich der Steuerung umsetzten kann.
Die SDL ist überhaupt nicht dafür vorgesehen eine Oberfläche zu generieren bezüglich Button etc..
Wie könnte ich nun diese (es geht um ein paar Radiobutton, Textfelder und normale Button) in das gleiche Fenster integrieren, wo meine Grafik dargestellt wird. Geht das überhaupt oder sollte ich doch auf eine andere Library umsteigen?
-
Du könntest z.B.
a) Deine Buttons einfach als weitere Sprites in SDL malen und auf Mauszeiger-Klicks innerhalb dieser Sprites reagieren
b) Die SDL in einem Childframe einer "normalen" Windows-Anwendung mit Buttons und Co. nutzen. Ich weiß nicht inwieweit das unterstützt wird. Auf jeden Fall geht dann die SDL-Multiplattformfähigkeit verloren.
c) Eine externe GUI-Library benutzen, z.B.
http://www.cegui.org.uk/gallery/index.php
http://guichan.sourceforge.net/screenshots.shtml
http://www.thomasandamy.com/projects/GLO/GLOScreens.htm
Du mußt halt schauen, inwieweit Du das auf SDL trimmen kannst, bzw. ob direkt Support dafür da ist.
Ggf. bietet SDL bei seinen zusätzlichen Libs auch etwas derartiges an.
-
Danke für die schnelle Antwort. Weg c) ist für mich der interessanteste, sollte zumindest am schnellsten gehen. Nur leider sieht das wohl doch nicht so aus. Ich habe mich für die aedGUI entschieden, wollte das Ganze compilieren (Binarys sind nirgends zu finden) und scheitere seit nunmehr 5 Stunden daran :(. Ich erhalte im Moment noch folgende Fehler:
Verknüpfen... Bibliothek "Release/aedGUI.lib" und Objekt "Release/aedGUI.exp" werden erstellt. aedWindow.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""protected: class aedRect __thiscall aedWidget::getMyPosition(void)" (?getMyPosition@aedWidget@@IAE?AVaedRect@@XZ)" in Funktion ""public: class aedRect __thiscall aedWidget::getRealPos(void)" (?getRealPos@aedWidget@@QAE?AVaedRect@@XZ)". aedStaticRTF.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""protected: class aedRect __thiscall aedWidget::getMyPosition(void)" (?getMyPosition@aedWidget@@IAE?AVaedRect@@XZ)". aedStaticText.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""protected: class aedRect __thiscall aedWidget::getMyPosition(void)" (?getMyPosition@aedWidget@@IAE?AVaedRect@@XZ)". aedTextBox.obj : error LNK2001: Nicht aufgelöstes externes Symbol ""protected: class aedRect __thiscall aedWidget::getMyPosition(void)" (?getMyPosition@aedWidget@@IAE?AVaedRect@@XZ)". ... aedGUI - 355 Fehler, 2 Warnung(en) ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========Hat irgendjemand eine Idee woran es liegen könnte, ich weiß keinen Ausweg mehr. Die GUI wäre aber ideal für meine Zwecke.
-
libs linken
-
Hmm, meinst du damit jetzt ich soll zusätzliche Abhängigkeiten in den Projekteigenschaften eintragen (benutze VC7/VC8), also die müssten da sein:
"SDL.lib freetype214MT.lib ws2_32.lib SDLmain.lib"
Oder habe ich da jetzt was falsch verstanden?
-
jo der findet von dem GUI die dlls nicht - die must du einfach in den projekt-eigenschaften hinzufügen dann sollte es tun.
mfg blan
-
Hmm, es liegen keine dlls bei in dem Packet, hab das Verzeichnis durchsucht. In der Readme ist auch nix zu finden.
Hat vielleicht noch jemand ne andere Idee? (oder kann es bei sich compilieren
--> http://prdownloads.sourceforge.net/aedgui/aedGUI-0.1.8a.zip?download)