SDL_Mixer не воспроизводит звук после перемещения инициализации в отдельный заголовочный файлC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 SDL_Mixer не воспроизводит звук после перемещения инициализации в отдельный заголовочный файл

Сообщение Anonymous »

Сейчас я пытаюсь использовать SDL_Mixer для загрузки файла .wav для моей игры. Я создал отдельный заголовочный файл, куда поместил функции, связанные с загрузкой файлов, воспроизведением, освобождением после использования... а также загрузил в него звуковой файл.
audios.h:
Mix_Chunk* batSound = nullptr;
void init () {
initSDL ();
batSound = loadSound("bat.wav");
}

void play(Mix_Chunk* gChunk) {
if (gChunk != nullptr) {
Mix_PlayChannel( -1, gChunk, 0 );
}
}

main.cpp:
Audios audio;
audio.init();
for (Bats& bat : bats) {
bat.move(map);
graphic.renderBat(bat);
audio.play(audio.batSound);
}

и все работало нормально, просто не в том «дизайне», который мне нужен. Поэтому я переместил его в файл, в котором кодирую свою игру/логическое движение ("logics.h)" для более точного проектирования, но он больше не работает.
logics.h:
Bats () : dx (0), dy(0), timer(0) {}

Bats (SDL_Texture*_texture, int startX, int startY, int startDx, int startDy) {
init (_texture, batFrames, batClips);
rect.x = startX;
rect.y = startY;
rect.w = PLAYER_SIZE;
rect.h = PLAYER_SIZE;
dx = startDx;
dy = startDy;
timer = 1000;
}

void checkCollision (const vector &map) {
for (int i = rect.y/TILE_SIZE; i < (rect.y+rect.h)/TILE_SIZE; i++){
for (int j = rect.x/TILE_SIZE; j < (rect.x+rect.w)/TILE_SIZE; j++) {
if (map[j] == 'A' || map[j] == 'B' || map[j] == 'C' || map[j] == 'D' || map[j] == 'E' || map[j] == 'F' || map[j] == 'S') {
if (dx>0 && dy==0) {
dx *= -1;
audio.play(audio.batSound);
}
else if (dx0 && dx==0) {
dy *= -1;
audio.play(audio.batSound);
}
else if (dy

Подробнее здесь: https://stackoverflow.com/questions/784 ... header-fil
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»