Pixi JS. Спрайт масштабируется / растягивается при изменении размера окна - PullRequest
0 голосов
/ 07 августа 2020

Я создаю renderTexture в babylon и затем сохраняю его в pixi js спрайт, используя этот каждый кадр ...

    convertToSpriteFromRT = (textureCanvas: HTMLCanvasElement, textureContext: CanvasRenderingContext2D, renderTexture: RenderTargetTexture, sprite: Sprite, other: Function) => {
        EngineEx.CurrentScene.scene.registerBeforeRender(() => {
            // PROBABLY SHOULDNT BE USING registerAfterRender | will polish
            renderTexture.render();

            const size = renderTexture.getSize();
            const pixels = renderTexture.readPixels().buffer;

            if (textureCanvas.width !== size.width) {
                textureCanvas.width = size.width;
                textureCanvas.height = size.height;
            }
            const imageData = new ImageData(new Uint8ClampedArray(pixels), size.width, size.height);
            textureContext.putImageData(imageData, 0, 0);

            sprite.texture.baseTexture.update();

            other();
        });
    };

Затем я позиционирую и масштабирую спрайт вот так ..

        this.pixiPortrait.scale.y -= 8.0;
        this.pixiPortrait.scale.x += 7.0;
        this.pixiPortrait.position.x -= 1150;
        this.pixiPortrait.position.y += 300;

И я добавляю спрайт в контейнер в функции обратного вызова other (), которую вы видите в первом фрагменте кода.

        SpriteConverter._instance.convertToSpriteFromRT(textureCanvas, textureContext, this.renderTexture, this.pixiPortrait, () => {
            if (this.isReady == false) {
                this.portraitContainer.addChild(this.pixiPortrait);
                this.content.addChild(this.portraitContainer);

                this.isReady = true;
            }
        });

И по какой-то причине спрайт масштабируется как Я изменяю размер окна (я использую chrome). Есть идеи, что это может быть?

...