G.S*_*sky 1 java swing multithreading 2d-games
我是新来的,我学习java已经两个月了。我实际上正在学习线程和多线程,我有一个小问题。为了练习我编写一个简单的 2D 卡牌游戏(如 MTG 或 HearthStone)。为了这一刻我做了很多事情,但我想知道我必须使用多少线程才能创建最高效的应用程序并养成良好的习惯。
因此,现在我在 EventQueue 中有 JFrame,以及扩展 JPanel 和实现 Runnable 的其他类,这是我的 Board,并且具有游戏循环(使用 init()、uptade() 和 repaint() 以及鼠标侦听器方法)。
对于简单的游戏来说有这么好吗?或者也许板上的每张卡片都应该有一个单独的线程来显示卡片信息、重新绘制等?
我感谢每一个帮助,干杯!
线程会大大增加程序的复杂性,因此请谨慎使用。(这也是系统资源的一大承诺,但这不太可能成为您的大问题)
我建议首先让您的应用程序成为单线程。如果您发现游戏逻辑花费的时间太长,导致 UI 缓慢且无响应,您可能会考虑在单独的线程上运行 UI 和游戏逻辑,但这不太可能(除非您的纸牌游戏非常复杂)。实际上,开始考虑多线程模型的地方是当您有多个客户端连接时 - 那么每个客户端都需要自己的线程,并且您必须处理它们之间的交互。
我在 Java 中看到的关于线程的最佳建议是,您几乎永远不需要显式处理它们。我建议,如果您想在应用程序中添加一些多线程,请将其作为培训练习,但请注意,这可能不是您在生产中要做的事情。