我正在为大学项目使用 Java 构建游戏。游戏一开始必须使用文本界面,后来我们才不得不添加 GUI。
我有一个线程运行游戏逻辑并更新游戏模型,还有一个单独的线程,一个具有 main 函数的线程,实例化了 JFrame,然后我根据游戏状态切换面板(控制器告诉 gui 哪个帧用 setPage 方法显示)。
然而,获取用户输入是让我发疯的原因。使用文本界面,我所要做的就是调用一个方法,比如 getPlayerNum,在用户输入数字并按下回车后,我会将输入返回给控制器。所有的游戏逻辑都在一个游戏循环中实现,在需要时请求输入并将输出通知给视图。
既然我被迫使用基于事件的 gui,我该如何模拟类似的行为?如何在用户单击按钮之前阻止方法调用,然后让方法返回正确的值?