错误 WebGL 与相位器



我尝试用Phaser制作我的第一个游戏,但是当我在自己的图像中使用tileSprite函数时出现错误:

this.game.load.image('ground', 'assets/ground.png');
this.ground = this.game.add.tileSprite(0, game.world.height - 432, game.world.width, 281, 'ground');
this.ground.tileScale.setTo(2, 2);

"地面.png"显示为黑色,我在控制台中收到此错误:

错误:WebGL:纹理将被渲染为黑色, 根据 OpenGL ES 2.0.24 规范第 3.8.2 节,因为它是 2D 纹理,带有不需要 mipmap 的缩小过滤器,其 宽度或高度不是 2 的幂,并且与包装模式不同 从CLAMP_TO_EDGE。

使用相同的代码但其他图像(来自演示相位器游戏)我没有收到此错误。

这是我的PNG(谁收到错误)

这是另一个工作良好的巴布亚新几内亚

精灵的宽度和高度必须是 2 的幂:

错误:WebGL:根据 OpenGL ES 2.0.24 规范第 3.8.2 节,纹理将呈现为黑色,因为它是 2D 纹理,具有不需要 mipmap 的缩小过滤器,其宽度或高度不是 2 的幂,并且包装模式与 CLAMP_TO_EDGE 不同。

(由我强调)

你的栅栏是两个精灵的幂,宽度为128px,高度为16px,但是,你的"Tapis"(不管是什么)是19x13,这不是两个的幂。

2的幂是它背后的实际数学,即2^n,其中n是任何正整数。所有 widht 和高度测量值必须与 2 的幂匹配。

最新更新