Bild einblenden (ähnlich Bildschirmschoner)
-
Habe Allegro runtergeladen und hinzugefügt.
Ein neues Projekt erstellt und die entsprechende Bibliothek hinzugefügt.#include <allegro.h> BITMAP *bild; int main(){ allegro_init(); install_keyboard(); set_color_depth(16); set_gfx_mode(GFX_AUTODETECT, 800, 600, 0, 0); ubanga = load_bitmap( "bild.bmp", NULL); acquire_screen(); draw_sprite( screen, bild, 0, 0); release_screen(); readkey(); return 0; } END_OF_MAIN();Die Anwendung wird fehlerfrei kompiliert jedoch sehe ich nur einen schwarzen Bildschirm, wenn ich starte. Um genauer zu sein: Alles Schwarz, abgesehen von der Titelleiste des Compilers. Die sieht man in der neuen Auflösung jedoch in umgekehrten Farbtönen.
Den Ansatz habe ich hier her: http://www.cppgameprogramming.com/cgi/nav.cgi?page=allegfiles
-
fmmmmm schrieb:
nimm irgend eine bildhandhabungsbibliothek, so einfach ist es.
z.B: gdlib, allegro, ....
kurz in die man-pages einarbeiten (10-15 minuten), programmieren (10-15 minuten) und du hast dein vorhaben. geht eh alles wie von selbst.
mfg faymann
Yggdrasil schrieb:
Hallo,
ich muss wohl zuerst anmerken, dass ich noch ein ziemlicher C++-Neuling bin. Wir haben in der Schule vor kurzen damit angefangen und ich habe Gefallen daran gefunden und würde gerne mein Wissen erweitern
Du bist schon so ein Held, toll das du das in 15 minuten kannst. Er hat gerade erst angefangen...
-
fmmmmmmmmmM schrieb:
fmmmmm schrieb:
nimm irgend eine bildhandhabungsbibliothek, so einfach ist es.
z.B: gdlib, allegro, ....
kurz in die man-pages einarbeiten (10-15 minuten), programmieren (10-15 minuten) und du hast dein vorhaben. geht eh alles wie von selbst.
mfg faymann
Yggdrasil schrieb:
Hallo,
ich muss wohl zuerst anmerken, dass ich noch ein ziemlicher C++-Neuling bin. Wir haben in der Schule vor kurzen damit angefangen und ich habe Gefallen daran gefunden und würde gerne mein Wissen erweitern
Du bist schon so ein Held, toll das du das in 15 minuten kannst. Er hat gerade erst angefangen...
Nunjo ich habe schon einige Erfahrung in anderen Programmiersprachen, jedoch meist Weborientiert. Ich brauch halt immer einen Ansatz und das meiste google ich mir zusammen, jedoch sah es bei den Imagefunktionen immer recht flau aus

Weiß jemand nun, warum bei mir Allegro nicht richtig funktioniert?
-
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.
-
Yggdrasil schrieb:
Habe Allegro runtergeladen und hinzugefügt.
Ein neues Projekt erstellt und die entsprechende Bibliothek hinzugefügt.#include <allegro.h> BITMAP *bild; int main(){ allegro_init(); install_keyboard(); set_color_depth(16); set_gfx_mode(GFX_AUTODETECT, 800, 600, 0, 0); ubanga = load_bitmap( "bild.bmp", NULL); acquire_screen(); draw_sprite( screen, bild, 0, 0); release_screen(); readkey(); return 0; } END_OF_MAIN();Die Anwendung wird fehlerfrei kompiliert jedoch sehe ich nur einen schwarzen Bildschirm, wenn ich starte. Um genauer zu sein: Alles Schwarz, abgesehen von der Titelleiste des Compilers. Die sieht man in der neuen Auflösung jedoch in umgekehrten Farbtönen.
Den Ansatz habe ich hier her: http://www.cppgameprogramming.com/cgi/nav.cgi?page=allegfiles
Ok ich hab keine Ahnung von Allegro aber
BITMAP *bild; ubanga = load_bitmap( "bild.bmp", NULL); draw_sprite( screen, bild, 0, 0);Kein schimmer was "ubanga" sein soll...aber änder das mal auf bild..vlt gehts ja dann....denn ansonsten wird bild gar nicht initialisiert
-
Ubanga ist wohl der geilste Name für eine Variable, der mir in der letzten Zeit über den weg gelaufen ist.

Ansonsten wäre SDL oder SFML noch eine Möglichkeit, wenngleich solche Libraries etwas überdimensioniert sind. Wenn die Sache betriebssystemabhängig laufen kann, könntest du mit WinAPI und den Funktionen des X-Servers wohl kleinere und elegantere Lösungen finden. Also: Welches OS?
-
mad_martin schrieb:
Ubanga ist wohl der geilste Name für eine Variable, der mir in der letzten Zeit über den weg gelaufen ist.

Ansonsten wäre SDL oder SFML noch eine Möglichkeit, wenngleich solche Libraries etwas überdimensioniert sind. Wenn die Sache betriebssystemabhängig laufen kann, könntest du mit WinAPI und den Funktionen des X-Servers wohl kleinere und elegantere Lösungen finden. Also: Welches OS?
@Kuldren: Ich hatte für das Forum den Variablennamen von ubanga in bild umgeändert, um es verträglicher zu machen. Hab ich wohl eine übersehen :p D.h. als ich es ausprobiert habe, haben die Variablen gestimmt.
@mad_martin: Es sollte auf Windows XP und 2000 laufen.
Eine andere Frage: Was braucht der PC für Vorraussetzungen um Allegro überhaupt ausführen zu können?
-
Up!

-
Sorry, lange nicht hier gewesen.
SDL und SFML sind selbst bei Windows eine gute Wahl. Aber wie schon gesagt, vielleicht zu groß.
Wenn du da trotzdem was probieren willst (ist zu empfehlen, vor allem, weil die ganzen betriebssystemabhängigen Sachen schön gekapselt sind), solltest du einfach mal die Tutorials der beiden Libs ansehen. Gibts bei http://www.sfml-dev.org/ und http://www.libsdl.orgDer Weg über die WinAPI würde zwar ein weniger aufgeblasenes Programm bringen, allerdings noch einiges an Einarbeitung fordern. Ein guter Start wäre z.B. http://www.win-api.de/tutorials.php
Für dein Problem genau wären dann folgende Stichworte gut:
Bild in EXE speichern: Resourcen
Vollbildprogramm: CreateWindow mit WS_POPUP
Auflösung ändern: ChangeDisplaySettings ( http://msdn.microsoft.com/en-us/library/ms533260.aspx )Persönlich würde ich den Weg über SFML vorziehen, da es eine C++-Bibliothek ist, keinerlei Vorkenntnisse der echt unschönen WinAPI benötigt und einen netten und schnellen Einstieg bietet.
Stichworte: RenderingWindow aufmachen, Image laden, Sprite zuordnen, Sprite zeichnen, fertig
gruß
Martin
-
danke, werde das gleich mal ausprobieren