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

Phaser 3加载宽高不等的精灵表制作动画报错返回空数组如何解决

问题原因

你遇到的报错是参数名大小写拼写错误导致的:

  • Phaser 3 加载精灵表的spritesheet方法配置项中,帧高度的参数名为驼峰格式的frameHeight(首字母H大写),你的代码中写的是全小写的frameheight,Phaser无法识别该参数,会默认取frameWidth的数值作为帧高度。
  • 你加载不等宽高的精灵表时frameWidth设为96,Phaser默认采用96作为帧高度,而你的1health.png实际高度只有32px,无法切出任何符合尺寸的帧,因此抛出零帧、帧缺失的报错。
  • 之前加载等宽高的player精灵表时没有报错,是因为帧宽和帧高都是16,即使没识别到帧高度参数,默认取帧宽的16也刚好匹配需求,掩盖了拼写错误。
解决方案
  1. 修正精灵表加载代码的参数拼写,将frameheight改为frameHeight:
this.load.spritesheet('1health', 'assets/spritesheets/1health.png',{frameWidth:96,frameHeight:32});
  1. 可选校验步骤(修正参数后仍有问题可排查):
  • 确认1health.png的实际尺寸符合帧切割要求:宽度为96px的整数倍,高度为32px的整数倍。
  • 确保动画创建逻辑放在create生命周期阶段执行,避免精灵表还未加载完成就调用anims.create生成帧。

内容的提问来源于stack exchange,提问作者A.J Alhorr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 05:57:01