[英]Thread Vs javax.swing.Timer, controlling game animation in Java?
关于Java中的Thread和Timer类,我有一个非常直截了当的问题,作为创建游戏动画的一种方式。 哪两个更好? 两者之间真正的区别是什么,在Java中动画方面最受欢迎? 我希望我的问题能说明,这与我在这里的一个问题得到的答案有关... 问题
GUI需要在EDT上更新以确保正确完成绘画。 阅读Swing教程关于并发的部分,以获得有关此概念的完整说明。
当您使用Swing Timer时,事件在EDT中执行,因此您可以告诉组件在新位置重新绘制自己。
当你使用Thread时,循环就在EDT上完成,你需要使用SwingUtilities.invokeLater(...)将绘画代码放回到EDT上。
通常,如果您的代码只是将组件从一个位置移动到另一个位置,那么最简单的方法就是使用Timer。 但是,如果您的游戏涉及许多复杂的逻辑,那么您不希望该逻辑在EDT上执行,因为它会阻止GUI响应事件并重新绘制自身。 在这种情况下,您可能想要使用Thread。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.