好的,这听起来好像是一个疯狂的想法 – 但是我有兴趣在纯
Java中仿效20世纪80年代风格的
roguelike game文本界面,即使用Swing或类似的.
这大概是它需要做的事情:
>提供固定大小字符的固定尺寸网格作为“屏幕”(例如100 * 75)
>使用适当的等宽字体,理想情况下有很多有趣的符号
>允许单独设置每个字符位置的前景和背景颜色
>允许在屏幕中的任何位置打印字符串或单个字符(应覆盖这些位置中的屏幕缓冲区中的任何内容)
任何人都知道一个很好的现有解决方案,可以实现这一点?还是我从头开始一直在黑客入侵?
解决方法
根本不疯狂,这是我在Legerdemain实施的方法:
http://roguelikefiction.com
我使用一个二维数组的字符(char [] [])与一个相应的java.awt.Color [] []对象数组来跟踪颜色.您可以将这些数组推送到继承自JPanel(它又是JFrame的一部分)的类中,并在面板的paintComponent()回调中执行所有绘图.
Curses / JNI方法也没有什么问题,尽管如果您进入Swing路线,您会获得各种各样的大型Unicode字形. Legerdemain使用五百六十个.