有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java何时使用线程。在2D动画中睡在SwingTimer上

本例中的上下文是创建一个与模型集成的游戏循环,并每帧更新一次视图。监听器与控制器接口,控制器更新模型,repaint()处理来自模型的视图更新(在被覆盖的paintComponent()上,在JPanel上)

合适的答案包括“永远”,哈哈

这是一个我认为有更好答案的问题,所以它不应该违反规则

我问这个问题是因为主游戏循环是一个Runnable实例,我将其锁定为60FPS(目前大致如此。由于当前的渲染循环非常便宜,1000/60每个循环会损失一到两毫秒,因此相差几毫秒)。不通过Thread.sleep()锁定帧速率会导致每秒23亿帧(显然),这是可以理解的。这不是一个问题,更像是一个为什么需要帧锁定的例子

然而,在我遇到的每一个答案、每一条评论中,大多数人都会说:“你为什么要触摸Thread.sleep()你不想让EDT睡觉。”。如果循环中存在导致无响应的缺陷,这是可以理解的,但在我编写的应用程序中,情况并非如此。我已经阅读了所有相关的事件调度线程文档,如何使用Swing计时器,等等。我甚至自己使用了计时器,也使用了SwingWorkers(在一种情况下,将图标加载委托给后台,以防止GUI实例化中的阻止程序)

这里有更好的方法吗?在Java中,我没有遇到过很多/任何不依赖libgdx的独立游戏解决方案


共 (0) 个答案