Grafiken
-
Tut mir leid, ich hab bei den FAQ gesucht und nichts dazu gefunden... Und ich wollte auch nicht alle Links verfolgen.
Ich möchte gern einmal ein 2D-Jump'n'Run programmieren, und ich weiss noch nicht, wie ich es mache, grafisch zu zeichnen. Ich denke, es braucht dazu bestimmte Bibliotheken, aber ich weiss nicht welche... Und wahllos herumzusuchen ist auch eher sinnlos...
Es wäre nett wenn mir jemand eine gute Bibliothek für einfache Grafiken liefern könnte. Gut wäre, wenn noch ein Readme dabei ist, damit ich auch die einzelnen Funktionen verstehe.
-
Villeicht reicht dir das hier ja schon: http://www.c-plusplus.net/forum/viewtopic-var-t-is-128603.html
Oder du googelst mal nach OpenGl oder DirectX.
-
Hallo
Wahlweise kannst du es auch mit SDL probieren. dazu gibt es Tutorials und es ist eigentlich recht Einseigerfreundlich.
chrische
-
Hi!
Du kannst auch, wie fast alle alten Jump 'n Runs, direkt in den VGA Speicher pinseln.
Siehe z.B. Mode13 --> http://www.google.degrüße
-
-
Dieser Thread wurde von Moderator/in HumeSikkins 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.
-
sofern das spiel nicht im textmodus laufen soll, dürfte das nur wenig hilfreich sein

wie fast alle alten Jump 'n Runs, direkt in den VGA Speicher pinseln.
Siehe z.B. Mode13die frühen neunziger sind ja vorbei...

gdi eignet sich einfach aus performance-gründen wenig.
für reine 2d-bitmaps gingen directdraw oder sdl, aber im endeffekt ist es viel performanter, die grafiken gleich mit hilfe von polygonen, also opengl oder direct3d, auf den bildschirm zu bringen.
-
Vielen Dank für eure Hinweise. Inzwischen hab ich mich angemeldet, allerdings unter einem anderen Namen.
Ich möchte gerne ein 2D-Game ähnlich wie Super Mario
machen, auch Jump'n'Run.Mein Compiler ist Bloodshed Dev-C++, ich finde ihn eigentlich nicht schlecht. Ist SDL eigentlich geeignet dafür? Ich hab es mal downgeloadet von http://www.libsdl.org/download-1.2.php. Jetzt bin ich mir nicht sicher, ob ich das richtige heruntergeladen habe. Welche Datei brauch ich? Unter "Development Libraries -> Win32" steht für Visual C++ (diese Datei hab ich heruntergeladen) oder für Mingw32, ist das kompatibel mit anderen Compilern?
Ausserdem besteht das Zip-File aus ziemlich vielen Headern... Ich weiss nicht genau, was ich damit soll, denn die englische Dokumentation versteh ich nicht sehr gut.
Ich hab gesehen, dass es einen Link zu einer deutschen SDL-Site hat (http://www.libsdl.de/). Dort sind auch Dokumentationen auf deutsch.Aber ich weiss nicht genau, ob SDL für solch ein Jump'n'Run überhaupt geeignet ist... Ich hab noch nie mit Grafik programmiert und bin deshalb ein ziemlicher Anfänger... Aber zuerst will ich auch ein bisschen herumexperimentieren und Linien und Kreise und solches Zeugs zeichnen

für reine 2d-bitmaps gingen directdraw oder sdl, aber im endeffekt ist es viel performanter, die grafiken gleich mit hilfe von polygonen, also opengl oder direct3d, auf den bildschirm zu bringen.
Mit OpenGL hab ichs auch versucht, bin aber nicht weit gekommen. Wo sollte ich es am besten herunterladen? Ist es für Einsteiger überhaupt geeignet? Und gibt es dazu deutsche Dokumentationen?
-
-
Okay vielen Dank für die Seite, scheint echt gut zu sein...
Aber das Problem mit SDL downloaden hab ich immer noch... Auf der Seite http://www.libsdl.org/release/ hat es Unmengen von Versionen, und ich hab natürlich keine Ahnung, welche geeignet ist. Ich wäre dazu auch dankbar, wenn mir jemand sagen könnte, wie ich es auf dem PC zu installieren habe (es sind ja mehrere Dateien).Wenn ich schon dabei bin, was ist genau ein Tile? Davon ist häufig die Rede...
-
http://www.libsdl.org/download-1.2.php
ein tile ist ein kleines stück landschaft, welches mit anderen tiles zusammen dann die landschaft oder öhnliches ergibt.
-
aktuellste version runterladen, entpacken und im entstandenen verzeichnis "configure" und "make" aufrufen und in deiner ide den pfad zu den include-files, sdl.lib und sdl.dll hinzufuegen. voraussetzung ist, dass alle noetigen umgebungsvariablen des gcc, auf dem bloodshed aufbaut, gesetzt sind.
-
Schonmal Scherfgen's Framework angeschaut?
Bye, TGGC (Das Eine, welches ist.)
-
Danke, ich hab jetzt alles installiert und den Compiler um die Speicherortinformationen für die Lib-, Bin- und Include-Dateien des SDL erweitert (Ich hab sie zwar an einem separaten Ort gespeichert, doch den Speicherort dem Compiler angegeben).
Ich hab ein einfaches Programm geschrieben, das nur die SDL initialisieren soll (hab ich bei der Dokumentation dazu gefunden):#include <iostream> #include <SDL.h> using namespace std; int SDL_Init(Uint32 flags); int main() { }Doch jetzt schon gibt der Compiler eine Fehlermeldung zurück:
[Linker error] undefined reference to `WinMain@16'
ld returned 1 exit statusIch hab auch versucht, sie in die Standard-Lib, Bin und Include-Verzeichnisse des Compilers zu verschieben und die Präprozessor-Anweisung mit "" zu schreiben. Hat nichts genützt.
Auf der Seite http://jnrdev.72dpiarmy.com/en/howtosdldevcpp/ ist eine Hilfe für meinen Compiler, ich hab eigentlich das befolgt, was dort steht (mit Ausnahme der Version, die ich heruntergeladen habe). Aber es geht nicht. Ausserdem ist die Anweisung dort nur in einem ganzen Projekt möglich, und ich will auch die Möglichkeit haben, einzelne, unabhängige Dateien zu machen. Irgendwie sollte der Linker-Fehler schon wegzukriegen sein.
-
Ich glaub du hast einfach die Referenz auf "WinMain" undefiniert gelassen.
Bye, TGGC (Das Eine, welches ist.)
-
Hehe, das ist einfach die Übersetzung... Aber was soll ich genau machen? Ich hab an den Header-Dateien nichts geändert... Muss ich noch zusätzliche Zeilen schreiben, um dem Linker etwas klar zu machen? Oder was ist die WinMain-Referenz?
-
wahrscheinlich hast du einfach kein konsolen- sondern ein win32-projekt. dadrin heisst der einsprungspunkt nicht "main" sondern "WinMain". benenn' deine main also einfach um und schon geht's.
-
Nein, bei SDL ist das alles etwas anders. Ich hab die SDL Doku nicht hier, aber wer damit arbietet solltet sich nicht nur jaben sondern auch lesen. f'`8k
AutocogitoBye, TGGC (Das Eine, welches ist.)
-
Ja ist schon gut... Als Anfänger versteht man vielleicht nicht auf Anhieb alles... Inzwischen hab ich es geschafft, es in einem Projekt ohne Fehler laufen zu lassen (ich hab den Code aus der Doku kopiert, um es auszuprobieren.)
#include "SDL.h" #include <stdio.h> int main(int argc, char *argv[]) { printf("Initializing SDL.\n"); if((SDL_Init(SDL_INIT_VIDEO|SDL_INIT_AUDIO)==-1)) { printf("Could not initialize SDL: %s.\n", SDL_GetError()); exit(-1); } printf("SDL initialized.\n"); printf("Quiting SDL.\n"); /* Shutdown all subsystems */ SDL_Quit(); printf("Quiting....\n"); exit(0); }Das lief ohne Fehler. Ich hab bei den Projekt-Parametern beim Linker "-lmingw32 -lSDLmain -lSDL" geschrieben, und damit funktioniert es. Ich weiss aber immer noch nicht, ob es auch möglich wäre, eine einzelne Datei zu schreiben, denn die Projekt-Optionen sind dann nicht vorhanden...
-
Dann mach halt ein Projekt, welches nur eine einzige Datei enthält.