gpt4 book ai didi

java - 在 Java 中加载和缓存图像的最佳方式是什么?

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

我 Collection 了超过一千个 16 x 16 像素的图 block 图像,我用 Java 制作的游戏需要这些图像。

在不耗尽 JVM 可用内存的情况下存储图 block 的最佳方法是什么?

我认为生成 1000 多个 BufferedImages 可能并不明智...

保持图像就绪的主要目的是加载 map , map 将根据 map 文件动态生成。

最佳答案

首先,加载所有这些图像真的是个问题。 16 x 16 像素的 1000 张图像是 256000 像素。即使每个像素使用 4 个字节也只会产生 1 MB 的图像数据,这并不多。

如果您真的想要/需要减少加载到内存中的图像数量,您可以只将 map 所需的可 View block /图像加载到内存中,再加载一些以提高游戏的响应速度。

例如,如果您的游戏显示 n × m 的 map ,您可以加载 n+2 × m +2 tiles 到内存中,或视觉表示(其中 * 是可见的 tiles 和 + 额外加载到内存中的 tiles):

+++++++++++
+*********+
+*********+
+*********+
+++++++++++

当用户移动 map 时,您删除对不再需要的图 block 的引用并开始加载新图 block 。由于您在内存中保留了一个图 block ,因此移动 map 应该仍然很顺利。当然,如果您的图 block 相当小,或者移动 map 的速度非常快,您可以增加使用的额外图 block 数量

关于java - 在 Java 中加载和缓存图像的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8672598/

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