Phaser js 3 loadTexture不是函数

时间:2019-01-27 19:19:14

标签: javascript phaser-framework

我想写一些俄罗斯方块,例如由块组成的输出,可能处于2种状态。当块变为活动状态时,我需要更改块的精灵。为了进行测试,我只是添加了一个功能,即在按下左按钮时激活了一个块。

我尝试调用loadTexture,但抛出loadTexture不是函数错误

    function create() {
        field = new Array(height)
        for (let i = 0; i < height; i++) {
            field[i] = new Array(width);
            for (let j = 0; j < width; j++) {
                field[i][j] = new Object();
                field[i][j].isActive = false;
                field[i][j].sprite = this.add.sprite(j * blockSize, i * blockSize, 'block').setOrigin(0, 0);
            }
        }
        cursors = this.input.keyboard.createCursorKeys();
    }

    function update() {
        if (cursors.left.isDown) {
            field[1][1].isActive = true;
        }
        for (let i = 0; i < height; i++) {
            for (let j = 0; j < width; j++) {
                if (field[i][j].isActive && field[i][j].sprite.texture.key != 'blockActive') {
                    field[i][j].sprite.loadTexture('blockActive', 0);
                }
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

您已经发现它是setTexture而不是loadTexture。但是,您应该真正使用纹理图集,而只是更改帧(通过setFrame),而不是每次玩家按下键时都设置一个全新的纹理。