- 我在 blender 中从俯 View 创建了一个汽车动画。并将动画渲染为图片序列。
然后使用鞋盒创建图集,并将 trim alpha 选项设置为 True,以减小尺寸(cars.png、cars.js)
现在我在 Phaser 中播放动画,汽车被锚定在一个位置,并且不会从一端移动到另一端。
- 如何播放动画,以便 Phaser 在播放动画时读取源大小。 blender 渲染的图片与移相器 Canvas 窗口相同。但是当我在 Shoebox 中 trim 它以去除 alpha 时,我无法正确锚定汽车。
- 谁能指出我可能遗漏了什么。
preload: function () {
this.load.atlas('carImg', 'images/cars.png', 'images/cars.js', Phaser.Loader.TEXTURE_ATLAS_JSON_HASH);
}
create: function () {
this.carSprite = this.add.sprite(300, 300, 'carImg');
this.carSprite.animations.add('car',Phaser.Animation.generateFrameNames('Car', 0, 200, '.png', 4), 18, true);
this.carSprite.animations.play('car',18,true);
}
最佳答案
只要正确加载,Phaser 就会尊重并使用图集中的 trim/sourceSize 值。您通常应该使用数据文件的扩展名“json”,而不是“js”。另外,你确定它肯定是HASH格式吗?如果您删除该参数,Phaser 将在检查源文件时自动为您计算出它。
此外,在您的代码中您创建了一个名为“car”的动画,但正在播放一个名为“bus”的动画。不确定您是否只是有选择地复制粘贴该代码,但动画键需要匹配。
关于javascript - Phaser.io 图集动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44722381/