gpt4 book ai didi

python - 预加载图像pygame

转载 作者:太空宇宙 更新时间:2023-11-04 10:45:35 24 4
gpt4 key购买 nike

我制作的游戏目前存在帧速率问题。我确实认为问题在于我当前正在加载的图像数量相当大,所以我的问题是:“有没有预加载图像的方法?所以基本上是在使用之前加载它们?”

我不知道这是否可行,但在我看来这听起来不错。所以基本上没有任何东西被绘制到屏幕上,但是图像已经准备好了,没有任何延迟(或最少)。

最佳答案

是的,这很简单。

最简单的方法是只创建一个用作缓存的 dict,以及一个从该缓存加载图像的方法:

image_cache = {}
def get_image(key):
if not key in image_cache:
image_cache[key] = pygame.image.load(key)
return image_cache[key]

(如果您需要更多功能,可以为此创建一个类)。

现在,当你想使用图像时,使用 get_image 函数:

class Player(object):
def __init__(self):
self.image = get_image('image1.png')

如果您想一次又一次地使用同一张图片,所有图片现在都会在加载后缓存并重复使用。

要在启动时预加载所有图像,您可以自己创建所有图像的列表

images = ['image1.png', 'image2.png', 'image3.png']

或者简单地获取特定文件夹中所有图像的文件名

import glob
images = glob.glob('*.png')

并一次加载所有图像:

# ensure all images are loaded
for image in images:
get_image(image)

另请注意,另一个常见的瓶颈是字体渲染,这非常昂贵。您可以使用相同的技术(使用简单的 dict)缓存使用 Font.render 创建的字体表面。

关于python - 预加载图像pygame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17615447/

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