繁体   English   中英

Thread Vs javax.swing.Timer,用Java控制游戏动画?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM