gpt4 book ai didi

java - 游戏 build 。机制

转载 作者:行者123 更新时间:2023-12-02 05:47:16 31 4
gpt4 key购买 nike

通常游戏是通过无限循环创建的,它由两种主要方法构建:

while(true) {
update();
paint();
}

我只用java写了3行:

long start = System.nanoTime();
List<? super HashMap<String, String>> list = new LinkedList<HashMap<String, String>>();
long end = System.nanoTime();

然后我显示了执行此类操作的时间,我得到:1 ms、323 us 和 48 ns。

游戏流畅,如果至少有30帧/秒,那么1秒内,一帧的时间:33毫秒。

如果像创建容器这样简单的操作一帧就需要3%的时间,怎么可能写出流畅的游戏呢?仅一项操作就花费了 3% 的时间,如果应用程序复杂化,在 33 毫秒内计算并绘制所有内容几乎是不可能的。

通常在游戏中update()paint() 更罕见地被调用?

最佳答案

正如 Jim Garrison 在评论中提到的,当 JVM 启动时,运行速度会变慢。这是由于多种因素造成的,包括“及时”编译或 JIT...仅仅分析几行代码基本上是没有意义的...应用程序启动后运行的相同代码行可能只需要一小部分如果单独运行,它们所花费的时间。

此外,大数据结构的(缓慢)初始化通常在游戏更新循环开始之前完整执行。

也可以使用多线程进行后台加载和资源初始化...尽管通常简单地在级间菜单屏幕期间预加载所有内容是可以接受的。

现代游戏循环通常也比您的示例复杂得多:

例如,诸如迷你 map 之类的东西通常以较低的频率更新,或者每帧仅部分更新,而物理通常需要以比绘制周期更高的采样率运行。

关于java - 游戏 build 。机制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23943645/

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