You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PyGame Zero中重新加载外部更新的同名图片文件

PyGame Zero 实现外部修改图片实时重载的方案

现有代码的两个核心问题

  • update 函数内的drone是局部变量,无法修改全局定义的 drone 对象,你当前的写法本身就不会更新角色显示
  • PyGame Zero 默认会对加载过的图片资源做缓存,重复调用Actor('drone')时会直接读取缓存内容,不会重新读取磁盘上的同名文件,因此外部修改的图片无法生效

功能实现代码

from pgzero.loaders import images

WIDTH = 500
HEIGHT = 500

drone = Actor('drone')

def draw():
    screen.clear()  
    drone.draw()

def update():
    # 声明使用全局drone变量
    global drone
    # 清空图片缓存,强制下次加载读取磁盘文件
    images.clear()
    # 直接更新角色的图片属性,无需重复创建Actor对象
    drone.image = 'drone'

可选优化方案

如果不需要逐帧重载(会额外占用性能),可以绑定按键触发重载,只有修改完图片后按指定键再刷新即可:

def on_key_down(key):
    global drone
    # 按R键触发图片重载
    if key == keys.R:
        images.clear()
        drone.image = 'drone'

内容的提问来源于stack exchange,提问作者PlantPot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:42:01