【问题标题】:How many Threads in Java 2D game?Java 2D 游戏中有多少个线程?
【发布时间】:2015-11-17 02:35:05
【问题描述】:

我在这里很新,我学习了 2 个月的 java。我实际上正在学习线程和多线程,我有一个小问题。练习我编写一个简单的 2D 纸牌游戏(如 MTG 或炉石传说)。此刻我做了很多,但我想知道我必须使用多少线程,才能创建最高效的应用程序并养成良好的习惯。

所以,现在我在 EventQueue 中有 JFrame,以及扩展 JPanel 并实现 Runnable 的其他类,这是我的 Board,它有游戏循环(使用 init()、uptade() 和 repaint() 以及鼠标侦听器方法) .

简单的游戏这么好用吗?或者也许板上的每张卡片都应该有一个单独的线程来显示卡片信息、重新绘制等?

感谢每一个帮助, 干杯!

【问题讨论】:

  • 如果您的问题集中在可以用代码或堆栈框架说明的单个问题或问题上,那么本论坛的格式会更好。在目前的形式中,您的问题非常广泛、分散,而且答案很可能是基于意见的。
  • 每张卡一个线程只是浪费IMO资源。游戏本身的线程可能是个好主意。

标签: java multithreading swing 2d-games


【解决方案1】:

线程会大大增加程序的复杂性,因此请谨慎使用。 (这也是对系统资源的巨大投入,但这不太可能是您的大问题)

我建议首先将您的应用程序设为单线程。如果您发现游戏逻辑耗时太长以至于 UI 反应迟缓且无响应,您可能会考虑在单独的线程上运行 UI 和游戏逻辑,但这不太可能(除非您的纸牌游戏认真 em>复杂)。 真正开始考虑多线程模型的地方是当您有多个客户端连接时 - 然后每个客户端都需要自己的线程,并且您必须处理它们之间的交互。

我见过的关于 Java 线程的最佳建议是您几乎不需要显式处理它们。如果你想在你的应用程序中加入一些多线程,我建议你把它作为一个训练练习,但要注意这可能不是你在生产中会做的事情。

【讨论】:

  • 好的,谢谢您的建议。当我学习 Java 时,我编写了很多简单的应用程序,这些应用程序会影响我的 CardsGame 项目之外的给定问题。 ;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-21
  • 2010-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-17
相关资源
最近更新 更多