javascript - Phaser 生成的纹理不起作用

标签 javascript phaser-framework

尝试制作随机纹理,我有以下代码:

//doesn't work
var selections = [".","1","2","3","4","5","6","7","8","A","B","D","E","F"]


var d = [];

for (var i = 0; i < 15; i++){
    var inner = [];
    for (var j = 0; j < 15; j++){
      var idx = Math.floor(Math.random() * selections.length);
      var item = selections[idx];
      inner.push(item);
    }
    d.push(inner.join(''));
}

//console.log(burd, data)
console.log(d);


game.create.texture('rand',d, pixelWidth, pixelHeight);

由于某种原因,它无法加载(或仅显示为背景) 我尝试过仅使用硬编码值并且工作正常。

//works
var burd = [
"A682EA1D51D8D46",
"5.1628F1.F81757",
"1A6F2672B234AE1",
"B.8BB42746AFA22",
"E4.113385.D1.D.",
"6EF22BA.66181D3",
"7E18A7DD6F8F3D2",
".D47D225761427D",
"B4BDA5DE..778E7",
"1B46.BEF48321D8",
"FF6.7.347746D2.",
"A2AF57B4B4F4.DD",
"EAD335264158B14",
"A133FB31E4.E728",
"FAF52EBF7.3E81D"];

game.create.texture('burd', burd, pixelWidth, pixelHeight);
game.add.sprite(300, 300, 'burd');

我的代码有错误吗?相位器有问题吗? (使用2.6.2), 完整代码在这里:https://gist.github.com/blakedallen/f771d8e0615ff8d35f0630db6a10bd6d

最佳答案

以下所有内容均在 Phaser CE v2.10.3 上进行了测试,但我认为您的版本应该相同。

我想知道代码的第二个示例如何工作(生成“burd”时)。 在任何情况下,纹理创建都是异步操作,并且创建的纹理的使用应该在创建该纹理时发生。例如

this.game.create.texture('rand', d, pixelWidth, pixelHeight, Phaser.Create.PALETTE_C64, true, () => {
    game.add.sprite(0, 0, 'rand');
}, this);

enter image description here

关于javascript - Phaser 生成的纹理不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50662340/

相关文章:

javascript - 使用谷歌应用程序脚本更改列表选项

javascript - 如何循环出现在元素之后的元素?

javascript - javascript 中的二维数组有点问题

javascript - 移相器 3 : Change "Hitbox"/Interactive area of sprite without physics

javascript - 如何在不更改像素值的情况下调整 Phaser 的 Canvas 大小?

javascript - 如何不在 Phaser 3 中渲染对象

javascript - 如何将 RequireJS 配置放在单独的文件中并使 r.js 优化器工作?

javascript - 显示加载程序图像,直到背景图像完全加载

javascript - 将圆形边框转换为可点击功能

javascript - Phaser JS - 按住单击按钮,将鼠标移开,然后松开单击触发器 onMouseUp