Phaser 3 spritesheet 未在 iOS 上显示 - 而是显示黑色矩形
Phaser 3 spritesheet not displaying on iOS - Shows black rectangle instead
我有一个使用 Phaser 3 构建的项目,但奇怪的是它没有显示 spritesheet(而是显示为黑色矩形)。它只发生在移动设备上(运行 在模拟器上,运行 在移动 safari 上)。在我的 mac 上,它显示正确(chrome 和 safari)。
代码:
在boot-scene.ts
中:
this.load.spritesheet('character-walk', 'assets/walk.png',
{ frameWidth: 547, frameHeight: 481 },
);
在game-scene.ts
中:
this.player = this.add.sprite(100, 600, 'character-walk')
截图:
非常感谢任何帮助。
可能下载不正确。你从哪里提供这个 spritesheet?此服务器是否允许来自您发出请求的来源(即您的应用程序的来源)的请求?
如果没有,您可能需要在您的服务器中允许 CORS。
在 gameConfig 中设置 type: Phaser.CANVAS
修复了这个问题。似乎 type:Phaser.AUTO
使其无法在 iOS.
上渲染精灵
如果项目需要 WebGL 加速,type: Phaser.CANVAS
不是解决方案。我发现当精灵在任何一个方向上超过一定数量的像素时就会发生这种情况。例如,我有一个 3000px x 6000px 精灵 sheet 图像表现出这种行为,但是当它被剪切到 3000px x 3000px 时,它会按预期加载 iOS。
我有一个使用 Phaser 3 构建的项目,但奇怪的是它没有显示 spritesheet(而是显示为黑色矩形)。它只发生在移动设备上(运行 在模拟器上,运行 在移动 safari 上)。在我的 mac 上,它显示正确(chrome 和 safari)。
代码:
在boot-scene.ts
中:
this.load.spritesheet('character-walk', 'assets/walk.png',
{ frameWidth: 547, frameHeight: 481 },
);
在game-scene.ts
中:
this.player = this.add.sprite(100, 600, 'character-walk')
截图:
非常感谢任何帮助。
可能下载不正确。你从哪里提供这个 spritesheet?此服务器是否允许来自您发出请求的来源(即您的应用程序的来源)的请求?
如果没有,您可能需要在您的服务器中允许 CORS。
在 gameConfig 中设置 type: Phaser.CANVAS
修复了这个问题。似乎 type:Phaser.AUTO
使其无法在 iOS.
type: Phaser.CANVAS
不是解决方案。我发现当精灵在任何一个方向上超过一定数量的像素时就会发生这种情况。例如,我有一个 3000px x 6000px 精灵 sheet 图像表现出这种行为,但是当它被剪切到 3000px x 3000px 时,它会按预期加载 iOS。