Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SDL_mixer] Jak z tego korzystać?

Ostatnio zmodyfikowano 2013-04-02 10:39
Autor Wiadomość
ly000
Temat założony przez niniejszego użytkownika
[SDL_mixer] Jak z tego korzystać?
» 2012-02-26 14:46:14
Witam,
chciałbym dodać dźwięk do programu za pomocą SDL_mixer, skorzystałem z anglojęzycznego tutoriala i napisałem takie coś:

C/C++
Mix_Music * music = Mix_LoadMUS( "2as.wav" );
if( !music ) {
    return 0;
}

Mix_PlayMusic( music, 1 );

Ale niestety muzyka nie jest odgrywana.
Mógłby mi ktoś pokazać przykład z użyciem tej biblioteki?
Z góry dziękuje za pomoc.
P-51461
Gabes
» 2012-02-26 16:36:24
P-51467
ly000
Temat założony przez niniejszego użytkownika
» 2012-02-26 21:57:38
To nie jest odpowiedź na moje pytanie.
P-51488
SeaMonster131
» 2012-02-26 22:07:39
( music, - 1 );
 ?
P-51490
ly000
Temat założony przez niniejszego użytkownika
» 2012-02-26 22:20:05
Nie wiem co się stało, ale program teraz zamyka się na od razu przy starcie.

Kod:

C/C++
#include <SDL.h>
#include <windows.h>
#include <SDL_mixer.h>
#include <iostream>
SDL_Event event;
SDL_Surface * ekran = NULL;
SDL_Surface * ludek = NULL;
SDL_Surface * backg = NULL;

SDL_Event zdarzenie;

SDL_Event mysz;

SDL_Rect LudekDestination;
Uint8 * keystate = SDL_GetKeyState( NULL );
int x, y;
bool wyjscie = false;
int myszkaY, myszkaX;

int main( int argc, char * args[] )
{
   
    SDL_Init( SDL_INIT_VIDEO | SDL_INIT_AUDIO );
   
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
   
    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    ekran = SDL_SetVideoMode( 1400, 800, 32, SDL_SWSURFACE );
   
    ludek = SDL_LoadBMP( "cb.bmp" );
    backg = SDL_LoadBMP( "backg.bmp" );
    LudekDestination.x = - 100;
    SDL_SetColorKey( ludek, SDL_SRCCOLORKEY, SDL_MapRGB( ludek->format, 0, 0, 0 ) );
    bool mysz_rusz = false;
   
   
    Mix_Music * music = Mix_LoadMUS( "2as.wav" );
   
    Mix_PlayMusic( music, - 1 );
   
    while( !wyjscie )
   
    {
       
       
    }
    SDL_FreeSurface( ludek );
   
    SDL_Quit();
    return 0;
}
P-51491
malan
» 2012-02-28 19:06:41
Sprawdzaj, czy poprawnie udało się wczytać zasoby (bitmapy, muzykę itd.). Możliwe, że to jest powód dla którego się wyłącza.
P-51581
megatron
» 2013-04-02 09:12:02
nie chcę zakładać nowego tematu więc się podczepiam. Mam ten sam problem co ly000.
po uruchomieniu program od razu się wyłącza, a jest to wina tego:
C/C++
if( !music )
{
    return 0;
}

nie wiem czemu ale wartość jest inna niż music i warunek się spełnia
P-79774
mactec
» 2013-04-02 10:39:47
@ly000
Zamykać się może dlatego, że nawet nie inicjujesz tej biblioteki.
Do inicjacji musisz użyć funkcji Mix_OpenAudio:http://www.libsdl.org/projects/SDL_mixer/docs/SDL_mixer_11.html
A tak wogóle to w tej pętli Ci się będzie program i tak wyłączał bo musisz sprawdzać eventy:
SDL_PollEvent( & Event )
 
P-79779
« 1 »
  Strona 1 z 1