Обновление Pixijs искажает текстуры - PullRequest
0 голосов
/ 18 ноября 2018

Когда я впервые открываю игру и играю, все в порядке

enter image description here

после нескольких ходов игроки получают новые ходы,некоторые карты летают (игроки получают ресурсы, торгуют и т. д.), а затем, когда я нажимаю кнопку обновления страницы, чтобы начать новую игру, некоторые карты меньше:

enter image description here

Обратите внимание, что это происходит только с картами.Общим для всех карт является то, что они оживляют.Карты оживляются, когда игрок получает новый ресурс.Поэтому, возможно, я подумал, что какой-то старый код продолжает работать в фоновом режиме, даже когда проигрыватель обновил страницу, поэтому я убедился, что все старые анимации остановились, когда игрок нажал на обновление.Это не решило проблему.

Другая интересная вещь заключалась в том, что карты в левом нижнем углу и карты в банке - это совершенно разные спрайты.У них нет ничего общего, кроме их текстуры (банковские карты даже не анимируются).Поэтому я предполагаю, что пакет текстур не был загружен специально для двух типов карт, показанных на этом изображении.Обратите внимание, что в каждой игре разные карты меньше, но как только определенная текстура становится меньше, «ВСЕ» из спрайтов, которые используют эту текстуру, становятся меньше.

Как я могу это исправить?

Моя функция загрузки описана ниже

export function loadImages() {
        PIXI.loader
            .add("tile_lumber", "../images/tile_lumber.svg")
            .add("tile_brick", "../images/tile_brick.svg")
            .add("tile_wool", "../images/tile_wool.svg")
            .add("tile_grain", "../images/tile_grain.svg")
            .add("tile_ore", "../images/tile_ore.svg")
            .add("tile_desert", "../images/tile_desert.svg")
            .
            .
            .
            .on("progress", loadProgressHandler)
            .load(GameUICore.setup);

}

export function setup() {
        assetsLoaded = true
        createContainers()
        GameUICards.setCardProps() //The cards on left bottom created here
        GameUIActions.createActions()
        GameUIPlayers.createPlayers() //The cards in bank created here
        createTimer()
        createKeyboardActions()

        app.ticker.add(function (delta) {
            animateObjects()
        });
    }

function animateObjects() {
        for (let view of animatingViews) {
            view.animate()
        }
        for (let line of animatingLines) {
            line.animate()
        }
        for (let text of animatingTexts) {
            text.animate()
        }
        removeObjectsWhoseAnimationFinished()
    }

Вы можете попытаться воспроизвести проблему: http://katan.io/

Обратите внимание, что это происходит в Chrome и Safari, но не в Firefox

...