аудио — звук C ++, повторяющийся с mmstream

Я не уверен почему, но в последнее время мои звуковые потоки C ++ OpenGL, использующие библиотеку mmstream, продолжают повторяться, даже если операторы if, управляющие ими, являются ложными (проверено с использованием точек останова)

Вот фрагмент кода:

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGB);
glutGameModeString("1280x768:32@75");
glutEnterGameMode();
init();
glutIdleFunc(idle);
glutMouseFunc(mouse);
glutReshapeFunc(resize);
glutKeyboardFunc(keyboard);
glutDisplayFunc(myDisplay);
glutPassiveMotionFunc(mouseMove);
glutMainLoop();
return 0;
}

а также

void mouseMove(int x, int y)
{
for (i = 0; i < 12; i++)
{
if (!level1.levelOneActive[i])
{
if(x >= originX && x <= ((windowW + resizeWindowW) * 0.25) && y >= originY && y <= (windowH + resizeWindowH))
{
useOnce = true;
PlaySound(TEXT("newGame.wav"), NULL, SND_FILENAME | SND_SYNC);
useOnce = false;
}

if(x >= originX + ((windowW + resizeWindowW) * 0.25) && x <= ((windowW + resizeWindowW) * 0.5) && y >= originY && y <= (windowH + resizeWindowH))
{
useOnce = true;
PlaySound(TEXT("loadGame.wav"), NULL, SND_FILENAME | SND_SYNC);
useOnce = false;
}

if(x >= originX + ((windowW + resizeWindowW) * 0.5) && x <= ((windowW + resizeWindowW) * 0.75) && y >= originY && y <= (windowH + resizeWindowH))
{
useOnce = true;
PlaySound(TEXT("options.wav"), NULL, SND_FILENAME | SND_SYNC);
useOnce = false;
}

if(x >= originX + ((windowW + resizeWindowW) * 0.75) && x <= (windowW + resizeWindowW) && y >= originY && y <= (windowH + resizeWindowH))
{
useOnce = true;
PlaySound(TEXT("exitGame.wav"), NULL, SND_FILENAME | SND_SYNC);
useOnce = false;
}
}
}
}

РЕДАКТИРОВАТЬ: Вот заголовок файла:

#include <iostream>
#include "gl\glut.h"#include "levelOne.h"#include "levelTwo.h"#include "player.h"#include "trap.h"#include <mmstream.h>
using namespace std;

levelOne level1;
levelTwo level2;
player player1;
trap t1;
int windowW = 500, windowH = 500, timer = 60;
int resizeWindowW = 0, resizeWindowH = 0;
int originX = 0, originY = 0, i;
bool useOnce = false;

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]