Probleme mit play_sound() (Allegro)
-
Moinsen.
Also ich habe einfach nur ein normales Programm geschrieben, in dem eine Bitmap
hin und herfliegt (also so von den Ecken wieder abprallt)Jetzt wollte ich dem Beispiel noch Musik zufügen:
#include <allegro.h> int main(int argc, char **argv) { allegro_init(); install_keyboard(); install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL); SAMPLE *sound = load_sample("midi.mid"); play_sample(sound,255, 129, 100, 0); ... ... ... } END_OF_MAIN()Kompilieren tut er das, nur wenn ich das Prog. ausführen will, kommt da immer so eine komische Fehlermeldung:
Microsoft Visual C++
Debug Error!
dann der Pfad.....
abnormal program termination
(Press Retry to Debug the Application)
... MMh was bedeuet des denn genau? Und wo ist der Fehler?
Danke schonmal im Voraus!
-
Also ein Fehler habe ich schonmal gefunden!
Anstatt play_sound() habe ich jetzt play_midi() genommen.
So jetzt geht zwar das Programm wieder, aber es spielt die Musik nicht ab!?
Hier ist einfach mal der ganze Quellcode:
#include <allegro.h> #include "GraphicMode.hpp" int main(int arc, char **argv) { int x=0; int y=0; int dx=1; int dy=1; allegro_init(); install_keyboard(); install_sound(DIGI_AUTODETECT, MIDI_AUTODETECT, NULL); if (!set_graphic_mode()) { allegro_message("Unable to set graphic mode!"); exit (0); } BITMAP *logo = load_bitmap("NightWare.bmp", NULL); BITMAP *doublebuffer = create_bitmap(SCREEN_W, SCREEN_H); MIDI *sound = load_midi("midi.mid"); set_volume(128, 128); play_midi(sound, 0); acquire_screen(); clear(screen); blit(logo, screen, 0, 0, x, y, logo->w, logo->h); release_screen(); while (!keypressed()) { if (x + dx < 0) { dx *= -1; } else if (x + logo->w >= SCREEN_W) { dx *= -1; } if (y + dy < 0) { dy *= -1; } else if (y + logo->h >= SCREEN_H) { dy *= -1; } x += dx; y += dy; acquire_bitmap(doublebuffer); clear(doublebuffer); blit(logo, doublebuffer, 0, 0, x, y, logo->w, logo->h); release_bitmap(doublebuffer); blit(doublebuffer, screen, 0, 0, 0, 0, SCREEN_W, SCREEN_H); } return 0; }END_OF_MAIN()