Фазер JS 3 LoadTexture не является функцией - PullRequest
0 голосов
/ 27 января 2019

Я хотел бы написать несколько выводов типа тетриса, состоящих из блоков, которые могут быть в 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 голосов
/ 29 января 2019

Вы уже выяснили, что это setTexture, а не loadTexture.Тем не менее, вам действительно следует изучить использование текстурного атласа и просто изменить кадр (с помощью setFrame), а не устанавливать совершенно новую текстуру каждый раз, когда игрок нажимает клавишу.

...