0

SDL を使用してゲームを作成していますが、SoundHandler クラスが機能せず、その理由がわかりません。ファイル パスは間違いなく正しく、SDL_Mixer も適切にセットアップされています。以前は正常にサウンドが機能していたので、エラーや警告も表示されず、ゲームは正常に実行されますが、音楽はありません。

SoundHandler.h:

enum Sounds
{
    BACKGROUND_MUSIC, STICK_COLLECT
};

class SoundHandler
{
    public:
        SoundHandler();
        void PlaySound(Sounds sound);
    private:
        Mix_Music *backMusic;
        Mix_Music *stickCollect;
};

SoundHandler.cpp:

SoundHandler::SoundHandler()
{
    Mix_OpenAudio(22050, MIX_DEFAULT_FORMAT, 2, 4096);
    this->backMusic = Mix_LoadMUS("Data//Music//Background.mp3");
    this->stickCollect = Mix_LoadMUS("Data//Sounds//StickCollect.mp3");
    Mix_VolumeMusic(128);
}

void SoundHandler::PlaySound(Sounds sound)
{
    if(sound == BACKGROUND_MUSIC)
    {
        Mix_PlayMusic(this->backMusic, -1);
    }
    if(sound == STICK_COLLECT)
    {
        Mix_PlayMusic(this->stickCollect, 1);
    }
}

main.cpp の関連行:

// Initialise Sound
SoundHandler soundHandler;

// Play Background Music
soundHandler.PlaySound(BACKGROUND_MUSIC);

// Play Sound
soundHandler.PlaySound(STICK_COLLECT);
4

1 に答える 1

1

問題はファイル パスのダブル スラッシュにあると思います。シングル スラッシュを使用してみてください。

エラーチェックなしでデバッグするのに長い時間がかかります。

于 2013-09-06T19:04:34.380 に答える