Erstes Spiel bzw. erste Grafikanwendung
-
Also ich kann da nur SDL empfehlen für nen leichten / einfachen Einstieg ... Wenn ich hier seh das du 2 Seiten lang nur mit Fehlermeldungen zu kämpfen hast
Kannst dir ja mal hier SDL Tutorials anschauen wenn du magst: http://www.robsite.de/tutorials.php?tut=sdl die von Marius Andra sind sehr gut erklärt.Hatt mein 2Player Pong damit an einem WE geschafft

-
Ich würde Dir auch den SDL empfehlen. Leicht zu programmieren, und man hat schnell Erfolgserlebnisse rund um die Themen Grafik, Animation, Eventhandling etc.
Die Robsite Links haben mir auch geholfen. Imo ist das Wiki-Book sehr hilfreich, da dort auch SDL-TTF (Font-behandlung), SDL-Image und SDL-gfx behandelt werden.
-
[propaganda]
nimm sfml, vergiss sdl1!!!!!!!
[/propaganda]
-
Peppie schrieb:
Wenn ich hier seh das du 2 Seiten lang nur mit Fehlermeldungen zu kämpfen hast

Die Fehlermeldungen liegen nicht an der Bibliothek an sich, sondern an Vista64 + Visual Studio und DLL-Inkompatibilitäten.

Außerdem hat jontef geschrieben, dass er am liebsten C++ verwenden will. SFML ist rein in C++ geschrieben, deshalb eine gute Wahl. Unter dem Gesichtspunkt um Längen besser als SDL, was in C implementiert wurde.
Was den einfachen Einstieg angeht: Ich habe beides ausprobiert und finde SFML geeigneter (gerade, weil ich als C++-Programmierer daran gegangen bin, und nicht als C-Programmierer). Schaut euch mal die Tutorials an und dann sagt mir nochmal, der Einstieg wäre schwer.
@jontef:
So, zurück zu deinem DLL-Problem. Es scheint also, als ob du die vorgefertigten DLLs nicht nutzen könntest. Kann passieren, bei Vista64 sogar wahrscheinlich.Also musst du die DLLs neukompilieren. Ist kein Problem. Geh in deinen SFML-Ordner. Da drin liegt (wenn du das Komplettpaket heruntergeladen hast) ein Ordner "Build". Da drin wählst du den zu deiner Version von VS passenden Ordner aus und öffnest die passende "SFML.sln".
Nun wählst du aus der Menüleiste "Build - Batch Build" aus (keine Ahnung, wie das in der deutschen Version heißt, wahrscheinlich "Erstellen - Batch...". Hacken bei allen Items, die mit "sfml-" anfangen und Abfahrt.
Nach dem Buildvorgang sollten dann - wenn alle Ordnereinstellungen stimmmen, davon gehe ich aus - direkt die neuen DLLs genutzt werden.
Probier das mal aus und berichte von deinen Erfahrungen!
Gib SFML 'ne Chance, du wirst sehen, es lohnt sich!

-
ok habe alles so gemacht wie du es gesagt hast. hat auch alles einwandfrei geklappt. die anwendungen funktionieren jetzt auch so weit bei mir.
nur wie bekomme ich die anwendungen auf anderen rechnern zum laufen ? muss ich da etwas mit dazu kopieren ? reicht es nicht wenn ich debug.exe rüber kopiere und die dort starte ?
desweiteren wird bei mir immer ein dos fenster geöfnet sobald ich ein programm starte, ist es möglich dieses zu umgehen ?gruß und danke schon mal
-
Entweder du lieferst die CRT-DLLs mit oder du linkst die CRT statisch rein.
Letzteres ist relativ einfach zu machen und auch keine schlechte Lösung (es gibt für beide Varianten Vor- und Nachteile).
Eine gute Anleitung gibt's hier:
http://blog.kalmbach-software.de/de/2008/03/05/wie-man-statisch-gegen-die-c-runtime-crt-linkt/Du musst nur beachten, dass du dies auch für SFML machst, also die Libraries von SFML nochmal neu erstellst, mit der gleichen Einstellung, wie du sie auch für dein eigenes Programm gemacht hast.
Dann sollte eigentlich alles laufen

Das ist übrigens kein "Fehler" oder schlechtes Designkonzept von SFML, sondern hängt einzig und allein an dem von Microsoft im VS propagierten Konzept der DLLs...
Achja, kleiner Tip noch:
Die Debugversion deines Programmes ist nur für dich (und evtl. andere Entwickler gedacht). Wenn du das Programm weitergeben willst, solltest du es als Releaseversion erstellen!
-
danke erstmal für die hilfe. bin gerade dabei alles umzustellen. mal sehen ob es funktioniert. werd noch ein feedback geben.
aber wie ist das jetzt mit dem konsolenfenster? kann ich das irgendwie schliessen bzw so einstellen das dieses nicht geöffnet wird? und wie bekommt man bei sfml nen menu oben in die leiste ?
-
eigentlich musst du nur ein Win32 Projekt erstellen und einen WinAPI einsprung machen das wars, so bekommste kein Konsolenfenster

-
hört sich gut an, und wo mache ich den ? hab mit winapi noch nie was gemacht ?
wenn ich das wie folgt mache, funktioniert es nicht
int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hprevinstance, LPSTR lpcmdline, int ncmdshow)
-
Mache ein leeres Win32-Project (also nicht Win32 Console, einfach das andere) und linke zur SFML-main.lib
Die übernimmt den Einsprungpunkt für dich und du kannst ganz einfach mitint main (..) { ... }arbeiten.
Zur Menüleiste:
Da musst du dich wirklich mit der WinAPI auseinandersetzen. Denn SFML ist keine GUI-Bibliothek.