gpt4 book ai didi

java - 在 Java2D 中绘制子类的哪个组件(对于 2D 游戏)

转载 作者:搜寻专家 更新时间:2023-11-01 00:52:56 25 4
gpt4 key购买 nike

我已经创建了我自己的 Canvas ,该 Canvas 是从 JPanel 扩展而来的,但是我注意到带有内容等等,突然间我的 FPS 受到了影响。我遵循 Filthy Rich Clients 的 swing 规则,使用 paintComponent,创建剪辑区域,仅重绘已更改的内容,等等。我将 FPS 设置为恒定的 50 FPS,我注意到有时我的 FPS 会跳到 31/32 FPS,然后回到 50 FPS,依此类推。在运行我的程序时,它只使用了大约 25MB 的 RAM 和 0 的 CPU,即使在渲染时也是如此。我也有 OpenGL 设置。

注意:我没有图像,这是严格使用图形中的形状。

在 JPanel 上绘制所有内容是否会对性能造成重大影响?我应该扩展一个不同的组件吗(我一直看到 Canvas 组件)?在 JPanel 中构建俄罗斯方 block (或任何其他复古游戏)之类的游戏有多“聪明”?

这可能是计时器问题,因为我刚刚添加了 100 个额外的绘画调用,而 FPS 仍然执行 50 32/31 的操作。

最佳答案

经过大量调查,我发现问题根本不是 JPanel 的问题。事实上,问题出在java中的Timer上。它不是 100% 准确,这导致 FPS 偏差很大。我解决这个问题的方法是阅读这个:koonsolo.com/news/dewitters-gameloop

关于java - 在 Java2D 中绘制子类的哪个组件(对于 2D 游戏),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5710356/

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