gpt4 book ai didi

java - "Java"做动画的方式

转载 作者:行者123 更新时间:2023-12-02 05:01:03 27 4
gpt4 key购买 nike

我想用 Java 制作动画。我看过:http://docs.oracle.com/javase/tutorial/uiswing/misc/timer.html

令我惊讶的是,在计时器操作处理程序中:

  • 我们并不实际调用绘图函数;我们只是更新状态 - 所以看来计时器操作用于“模拟”
  • 我们提出重画请求
  • Swing 在方便时重新绘制其请求

这对我来说有点奇怪,因为:

  • Swing 可以将多个重绘请求整理为一个
  • 如果我在计时器中计算 fps,我可能会过度计数(因为多次重绘变成一次)

问题:我是否误读了示例代码,或者这是用 Java 制作动画的“正确”方法?

谢谢!

最佳答案

单独进行状态更新和渲染是相当正常的。

Java/Swing 在这方面是很正常的。

原因:

  • 很多事情都可以更新状态(计时器事件、用户输入等),因此使更改变得非常轻量并将它们与屏幕刷新分离非常有用,以便您可以随时执行这些操作
  • 您经常希望屏幕刷新的速度与模型状态更新的速度不同。通常,您需要固定的动画/状态更新间隔,但希望屏幕刷新尽可能快。如果您在动画中进行插值,则尤其如此。
  • 渲染通常需要在特定上下文中进行(在本例中为 Swing UI 线程)。您不一定希望限制状态更改仅发生在这种情况下
  • 将 View (屏幕呈现)与数据模型分开是一种很好的做法。除了良好的概念设计区别之外,这还允许您独立于显示测试数据模型、在没有 GUI 的服务器上运行模型版本等。

关于java - "Java"做动画的方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10546053/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com