У меня просто небольшой проект астероидной игры на c ++, opengl и glut. Я пытаюсь воспроизвести звук корабля, используя Windows.h
и mmsystem.h
в minGW и коде Visual Studio, прежде чем я добавлю свой код линейного компилятора.
g++ GLasteroid.cpp -o GLasteroid.exe -L"C:/MinGW/freeglut/lib" -lglu32 -lopengl32 -lfreeglut -lwinmm -I"C:\MinGW\freeglut\include\GL"
У меня небольшая функция accelerate
исполняется при нажатии клавиши Glut specialKey UP:
void accelerate() //make ship accelerate
{
if (Shipacell == true){
glColor3f(1.0f, 0.0f, 0.0f);
glVertex2f(0.0f, 0.0f);
glVertex2f(0.0f, -0.075f);
glVertex2f(0.01f, 0.0f);
glVertex2f(0.01f, -0.062f);
glVertex2f(-0.017f, 0.0f);
glVertex2f(-0.017f, -0.062f);
glVertex2f(0.024f, 0.0f);
glVertex2f(0.024f, -0.049f);
glVertex2f(-0.035f, 0.0f);
glVertex2f(-0.035f, -0.049f);
//PlaySound(TEXT("sounds/thrust.wav"), NULL, SND_FILENAME);//Lag delay bad, with SND_ASYNC not work
PlaySound(L"\\sounds\\thrust.wav", 0, SND_FILENAME );// got error parameter 1
}
}
Посмотрите в способе 1, песня воспроизводится с большой задержкой с SND_ASYNC
не работает. При методе 2 я получил сообщение об ошибке на терминале:
In file included from c:\mingw\include\windows.h:62,
from GLasteroid.cpp:8:
c:\mingw\include\mmsystem.h:1561:24: note: initializing argument 1 of 'BOOL PlaySoundA(LPCSTR, HMODULE, DWORD)'
BOOL WINAPI PlaySoundA(LPCSTR,HMODULE,DWORD);
Если я попытаюсь указать весь путь C:\\MinGW\\projetos\\sounds\\thrust.wav
, я получу ту же ошибку.
Если у кого-то есть идеи,пожалуйста, напишите.