【发布时间】:2019-01-11 14:49:54
【问题描述】:
我正在开发一个用 Java 编写的基于文本的冒险游戏,我想知道是否有办法强制使用某种终端字体,以确保某些字符以一致的方式间隔以“绘制”事物比如关卡地图和 UI 元素。
从这里对 SO 的一些研究中,我看到 System.out 无法使用指定的字体,它实际上取决于最终用户的控制台/终端字体设置是什么。
我已经实现了一个 bash 脚本来获取用户终端在启动期间的当前大小的列数和行数,并将这些值写入我的 Java 代码然后读取的文件。
有没有办法通过 Java 或游戏启动脚本在游戏加载之前让最终用户的终端使用某种字体?有没有人用他们自己的基于文本的游戏处理过这种问题?是否最好只告知最终用户某种字体(等宽字体、无衬线字体)更适合获得最佳游戏体验?
【问题讨论】:
-
您需要在启动您的应用程序的终端上显示文本吗?大多数文字冒险都不会这样做。相反,他们创建了自己的显示窗口,完全在他们的控制之下,在上面显示游戏文本。这也支持完全没有控制终端的情况,例如从 GUI 启动游戏的情况。
-
我想知道...使用
exec并传入游戏脚本,以便它使用自己的终端实例;我发现用户选择的字体仍然是默认使用的字体。我已经在野外测试了其他一些基于文本的冒险,它们也以用户选择的字体显示,所以我认为最好用等宽字体设计游戏和通知可能玩的人暂时切换他们的自定义字体。 -
如果窗口系统是基于 X 的,您可以启动一个终端并传入配置参数来强制启动的终端具有您想要的字体。
标签: java linux terminal game-development