【问题标题】:Phaser.io atlas animationPhaser.io 图集动画
【发布时间】:2017-11-27 02:09:11
【问题描述】:
  • 我在搅拌机中从顶视图创建了一个汽车动画。并将动画渲染为图片序列。
  • 然后使用 shoebox 创建图集,将 trim alpha 选项设置为 True,以减小大小(cars.png、cars.js)

  • 现在我在 Phaser 中播放动画,汽车被固定在一个位置,而不是从一端到另一端。

  • 如何让动画播放,以便 Phaser 在播放动画时读取源大小。 搅拌器的图片渲染与移相器画布窗口相同。但是当我在 Shoebox 中修剪它以移除 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);
}

【问题讨论】:

    标签: javascript html5-canvas phaser-framework pixi.js


    【解决方案1】:

    Phaser 将尊重并使用图集中的 trim / sourceSize 值,只要它已正确加载。您通常应该为数据文件使用扩展名“json”,而不是“js”。另外,你确定它肯定是 HASH 格式吗?如果您删除该参数,Phaser 会在检查时自动从源文件中为您计算出来。

    另外,在您的代码中,您创建了一个名为“car”的动画,但正在播放一个名为“bus”的动画。不确定您是否只是选择性地复制粘贴了该代码,但动画键需要匹配。

    【讨论】:

    • 非常感谢您指出汽车/公共汽车的错误,我在堆栈溢出中复制了错误的行。而关于js和json,鞋盒默认导出.js,我懒得修改。但是,如果您说这是必要的,那么将对其进行纠正。哈希:是的,因为正文以 { frames:{ 开头,而不是 { frames: [。但是@photonstorm,那么我如何在没有路径动画的情况下将汽车从一个方向动画化到另一个方向,因为我的下一个场景是等距场景,我需要展示汽车转弯。请做建议。谢谢
    • 我需要将渲染的图片序列作为图集动画播放,所以我是否将shoebox中的trim alpha设置为false?加载时间会增加
    • 谢谢,json 的缺失部分被修剪:'true',显然鞋盒没有明确放置。现在它运行良好
    猜你喜欢
    • 2018-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-29
    相关资源
    最近更新 更多