PixiJS。当我调整窗口大小时,精灵会缩放/拉伸

时间:2020-08-07 09:03:44

标签: typescript pixi.js

我正在巴比伦创建一个renderTexture,然后通过使用每一帧将其存储到pixijs精灵中...

    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)。关于这可能是什么想法?

0 个答案:

没有答案