Phaser 如何:更改图像文件

How Phaser: to change image file

我目前正在开发这款游戏,但在加载图片时遇到了问题。或者我应该说 "dis-loading?"

我有这个图像文件 'circle',我用这个图像文件创建了 sprite 'ball'。我删除了这个文件 'circle' 并放入新文件并将其重命名为 'circle'。基本上我都换了。

但是,当我保存我的工作并刷新我的游戏时,它仍然使用旧文件,尽管它不再在我的资产文件夹中!当我将文件名更改为 'circle1' 之类的其他名称时,它突然再次起作用(意味着加载了新图像)。然后当我切换回 'circle' 时,它又回到旧图像。

game.load.image('circle',       'assets/circle.gif');

P.S。我尝试重新启动计算机和 MAMP 服务器。

花了一段时间才弄明白。 (还是不确定)

我想如果我用图像创建一个新的精灵,它会让新的图像文件替换所有旧的。我不知道为什么。如果您知道原因或解决此问题的确切方法,请向我解释。

发生这种情况是因为浏览器缓存了资产。基本上,浏览器首先查看缓存,发现具有此名称和此 URL 的文件已经存在,并决定不需要转向服务器,因此它会向您显示旧文件。清除浏览器的缓存,您应该会看到新文件。

从 Phaser 的角度来看,解决方法是向文件添加简单的版本控制,而不是

game.load.image('circle', 'assets/circle.gif');,

您执行以下操作:

var version = 1;
game.load.image('circle', 'assets/circle.gif' + '?' + version);

并在每次更改资产时更改 version 的值。