- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好的,这个问题需要更多的解释。
我使用 SFML 用 C++ 编写了一个游戏。因此,当我完成游戏(我使用的是 xcode)时,我转到“产品”>“存档”并将游戏的可执行文件保存在一个文件夹中。我将所有资源放在与可执行文件相同的文件夹中。当我双击可执行文件时,出现如下错误:
上次登录时间:12 月 17 日星期三 19:38:15,ttys001
我的 Macbook:~ My_Name$/Users/My_Name/Dropbox/SFML/DodgeBall/Builds/DodgeBall\Build\12-17/DodgeBall ;导出;
无法加载字体“sansation.ttf”(无法创建字体)
游戏崩溃:“ResourceLoader”类无法加载文件
注销
这部分:
游戏崩溃:“ResourceLoader”类无法加载文件
是我的游戏本身的输出。其余的我不明白。
但是当我进入终端并导航到我的游戏的可执行文件时,我可以这样做:
./DodgeBall
我的游戏运行良好。这是怎么来的?有没有一种方法可以让我双击可执行文件,它就会运行?
我使用的是 2010 年左右的 macbook、xcode 6、OSX Mavericks 和 SFML 2.1。
最佳答案
当您双击一个可执行文件时,操作系统 GUI 将您的可执行文件作为一个新进程运行,并将该进程的“当前目录”设置为某个任意目录。在 Windows 中,它是 C:/Windows/System32/
之类的。然后,您的代码告诉操作系统打开 sansation.ttf
,它检查当前目录和其他几个目录,然后找不到文件并放弃。
当您在控制台中“导航到我的游戏的可执行文件”,并以此方式启动程序时,控制台会将您的应用程序作为一个新进程运行,并将其“当前目录”设置为与控制台相同的目录,这是游戏可执行文件的目录。当您尝试打开 ttf
文件时,操作系统会检查当前目录,找到该文件,然后愉快地继续。
最好的解决方案是添加一个函数,将进程的当前目录更改为应用程序所在的位置。我不熟悉 Mac 操作系统,但我发现了这个:how to change the working directory to the location of the program .或者,您可以创建一个安装程序来创建某种系统变量来存储 tff 文件的位置。 (在 Windows 中,这可能是设置 PATH
或进行注册表项)
关于c++ - 为什么我的 SFML 游戏只能在终端中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27537601/
有一条(相对)众所周知的 Perl 公理:“只有 Perl 可以解析 Perl”。我想知道 Perl 6 是否仍然如此? 扩大讨论...考虑到 PyPy 最近的更新,我想到了这个问题。 Perl 独特
这是设置。在上一个问题中,我发现我可以通过子组件中的状态传递对象属性,然后使用 componentDidUpdate 获取该对象属性。在这种情况下,状态和属性都称为到达。 这是基本代码... expo
我运行的是 10.5.2 社区版。我已经标记了 源/主要/资源 作为源目录。我可以右键单击并“编译”某些文件,据我所知,这意味着 IDE 将文件复制到与发送类文件的“com.mydomain.pack
我是一名优秀的程序员,十分优秀!