pixi.js 速记其一
最近在研(xue)究(xi)pixi.js 。既然是研(xue)究(xi)既然会有许多一时踩坑的地方,所以想要开一个系列记录一下,当然,希望我不要鸽了
资源加载
pixijs 加载游戏资源要通过他们自己的 loader 函数,比如
|
|
这样它就会找到 images/anyImage.png 并加载进来,问题在于我们再工程化的项目中,会使用例如 webpack,parcel 等打包工具。我们为了让打包工具一并处理图片文件,所以直接 .add("images/anyImage.png")
是无法正确找到打包后的文件的。
因此,我们需要先把资源文件引入 js 再放到 loader
|
|
另外一个官方推荐的小 tip 是在 add
函数的首参数中传入字符串作为这个资源的别名,这样我们就可直接通过别名找到这个资源。
|
|
加载纹理贴图集
和加载一般资源一样,当你加载纹理贴图集的时候也会遇到同样的问题。再说这个问题以前,我们先简单了解一下什么是加载纹理贴图集。
简单来说,一个纹理贴图集就是一个JSON数据文件,它包含了匹配的PNG雪碧图的子图像的大小和位置。如果你使用了纹理贴图集,那么想要显示一个子图像只需要知道它的名字就行了。
使用一个纹理图有很多好处,比如可以通过 gui 工具便捷的批量处理你所需要的雪碧图资源,而不需要逐一去处理。
回到我们的问题,本质上加载纹理贴图集是加载一个 json 文件,然后我们的 pixijs 的 loder 函数,就可加载其中的设定信息,以及根据其中的信息将对应的雪碧图加载进来。
前面说到同样的问题也会出现在这里,而且他是加载 json 而非直接传递 json, 因此也不好直接动态修改雪碧图资源路径,再传入 json ,所以我们无法直接通过 add
函数去加载纹理贴图。
实际上这也是一个语法糖,那么我们只要不加载 json 而是直接加载雪碧图文件,然后在根据 json 来构建纹理贴图就好了
|
|
总结
本文简单记录了当我们在 pixijs 项目中使用打包工具时,会遇到的两个关于资源加载的问题