gpt4 book ai didi

Java 小程序仅以 10 fps 的速度更新

转载 作者:行者123 更新时间:2023-11-29 06:07:57 25 4
gpt4 key购买 nike

我最近的一项 Java 作业(高中类(class)...)是制作一个小程序,其中绘制了一个边框,一个球在屏幕上移动并在边框上弹跳。我安装了 Fraps,它报告小程序仅以每秒 10 帧的速度运行,这使得动画看起来非常平庸。

我原来画动画的方式:

  1. paint() 中调用我的方法:drawScreen()
  2. drawScreen() 中有一个 Thread.sleep(1000/frameRate) 暂停帧速率,它是从 html 传递的
  3. 调用repaint()

这非常好,小程序运行得像梦一样......直到我看到评分表,上面写着我不能每次都重新绘制屏幕(可能是因为计算机是异常缓慢,我的 friend 一直在提示他们的小程序闪烁足以引起眼睛不适,并且到处都是撕裂),我必须画一个球,然后再画另一个球与背景相同的颜色 盖上去,计算坐标,重复,直到小程序退出

问题在于

  • repaint() 无法调用
  • 我的动画上限为 10 fps
  • 没有线程可用于响应我在小程序查看器上单击关闭或小程序/查看器中的任何其他内容。

有没有办法让我的动画在不使用 repaint() 的情况下以超过 10 fps 的速度运行?

最佳答案

  1. 不要:
    1. 在顶级容器中执行自定义动画,例如 Applet(/JAppet) 或 Frame(/JFrame )。而是将自定义绘图放在 Canvas/PanelJComponent/JPanel 中,然后将该组件放入顶部级容器。
    2. 在这个新世纪使用 AWT 组件。
    3. 重写 Swing 组件的 paint() - 它应该是 paintComponent(Graphics)
  2. 不要在绘制线程上使用Thread.sleep(n)。而是使用 Swing Timer 并执行操作..
  3. 调用repaint()

关于Java 小程序仅以 10 fps 的速度更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7962208/

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