【问题标题】:Error WebGL with Phaser带有 Phaser 的错误 WebGL
【发布时间】:2014-03-30 22:52:34
【问题描述】:

我尝试使用 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);

“ground.png”显示为黑色,我在控制台中收到此错误:

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

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

Here is my PNG (who get the error)

Here is another PNG who working good

【问题讨论】:

    标签: javascript html phaser-framework


    【解决方案1】:

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

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

    (我强调)

    您的栅栏是两个精灵的幂,宽度为 128 像素,高度为 16 像素,但是,您的“Tapis”(无论是什么)是 19x13,这不是二的幂。

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

    【讨论】:

      猜你喜欢
      • 2017-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-07
      • 1970-01-01
      • 2018-09-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多