为什么当我从桌面 运行 我的程序时找不到我的声音文件?
Why is my sound file not being found when I run my program from the desktop?
我正在使用 SFML 制作一个简单的蛇游戏,目前正在尝试添加一种声音,每当蛇“吃掉”其中一个点时就会播放该声音。所以我下载了一个声音文件并将其放在我的项目目录中并将其添加到我的代码中:
sf::SoundBuffer buffer;
buffer.loadFromFile("Crunch.wav")
sf::Sound crunch;
crunch.setBuffer(buffer);
if (snake.isTouching(food))
{
crunch.play();
}
当我 运行 来自 Visual Studio 的游戏时,它工作正常。但是我喜欢把我完成的游戏放在我的桌面上,所以我进入我的 Debug 文件夹,找到我的 .exe 文件,创建一个快捷方式并将它放在我的桌面上。但是每当我尝试使用桌面快捷方式 运行 程序时,消息“无法打开声音文件 'Crunch.wav'(无法打开流)”显示在输出 window 上。有谁知道是什么原因造成的?当我从 VS 中 运行 程序时,程序 运行 应该如此。
提前致谢。
loadFromFile() 在当前目录中查找,当您在 visual studio 中构建和 运行 时,目录默认为 ProjectName\ProjectName,在这种情况下,您似乎有 Crunch.wav 在 .vcxproj 文件旁边的 ProjectName\ProjectName 文件夹中,因此您应该确保将 Crunch.wav 与 .exe 保持一致,就像在项目文件夹中一样,在这种情况下复制 Crunch.wav 到与 .exe
相同的位置
我正在使用 SFML 制作一个简单的蛇游戏,目前正在尝试添加一种声音,每当蛇“吃掉”其中一个点时就会播放该声音。所以我下载了一个声音文件并将其放在我的项目目录中并将其添加到我的代码中:
sf::SoundBuffer buffer;
buffer.loadFromFile("Crunch.wav")
sf::Sound crunch;
crunch.setBuffer(buffer);
if (snake.isTouching(food))
{
crunch.play();
}
当我 运行 来自 Visual Studio 的游戏时,它工作正常。但是我喜欢把我完成的游戏放在我的桌面上,所以我进入我的 Debug 文件夹,找到我的 .exe 文件,创建一个快捷方式并将它放在我的桌面上。但是每当我尝试使用桌面快捷方式 运行 程序时,消息“无法打开声音文件 'Crunch.wav'(无法打开流)”显示在输出 window 上。有谁知道是什么原因造成的?当我从 VS 中 运行 程序时,程序 运行 应该如此。 提前致谢。
loadFromFile() 在当前目录中查找,当您在 visual studio 中构建和 运行 时,目录默认为 ProjectName\ProjectName,在这种情况下,您似乎有 Crunch.wav 在 .vcxproj 文件旁边的 ProjectName\ProjectName 文件夹中,因此您应该确保将 Crunch.wav 与 .exe 保持一致,就像在项目文件夹中一样,在这种情况下复制 Crunch.wav 到与 .exe
相同的位置