我一直在将我的简单引擎移植到 OSX。它用 C++ 编写并使用 SDL 和 SDL_image。
如果我将图像放在最终的 .app 文件旁边,它可以正常工作,但是如果我将图像构建到 .app 内的资源文件夹中,它将无法工作。我收到一条错误消息,说它无法打开图像。
所以我的问题是,如果您的 .app 中有图像资源,如何在 C++ 中访问它们?
出于某种原因,Mac 版本的 SDL 将工作目录设置为包含应用程序包的目录,而不是应用程序包的 Resources 文件夹。将工作目录更改为 Resources 文件夹。打开 SDLMain.m 文件并修改 setupWorkingDirectory: 方法,以便将工作目录设置为 Resources 文件夹。以下代码应该可以工作:
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
[[NSFileManager defaultManager] changeCurrentDirectoryPath:resourcePath];