ipsa scientia potestas
ipsa scientia potestas

Reputation: 531

How to resize a sprite pixi.js

I have some PixiJS code that generates a sprite:

let type = "WebGL";
if (!PIXI.utils.isWebGLSupported()) {
    type = "canvas"
}
PIXI.utils.sayHello(type);
const app = new PIXI.Application({
    width: 1000, height: 600, backgroundColor: 0x1099bb, resolution: window.devicePixelRatio || 1,
});
document.body.appendChild(app.view);

function renderSprite() {
    const sprite = new PIXI.Sprite(PIXI.Texture.from("BEE-e1414622656271.png",));
    sprite.anchor.set(0.5);
    app.stage.addChild(sprite);
    sprite.x = app.screen.width/2;
    sprite.y = app.screen.height/2;

}

renderSprite();

The code works. However, the sprite generated is so large that it goes beyond the borders of the container.

I need to set the sprite's size, so I tried using the height and width options of baseTexture:

const sprite = new PIXI.Sprite(PIXI.Texture("BEE-e1414622656271.png", baseTexture=PIXI.baseTexture(options={
        "height": 100,
        "width": 100
    })));

But I got an error stating that PIXI.baseTexture was not a function.

How do I resize the sprite so it fits within the container?

Upvotes: 6

Views: 15191

Answers (1)

domis86
domis86

Reputation: 1357

You can control position and size of sprite after it is created like this:

    var sprites = {};
    sprites.cat = new PIXI.Sprite(catTexture);

    //Change the sprite's position
    sprites.cat.x = 96;
    sprites.cat.y = 96;

    //Change the sprite's size
    sprites.cat.width = 30;
    sprites.cat.height = 150;

    //Add the cat to the stage so you can see it
    stage.addChild(sprites.cat);

and then later - even when this sprite is added to stage container - you can further modify its width and height. Try putting in your game loop something like:

sprites.cat.width += 0.5;

See more in docs: https://github.com/kittykatattack/learningPixi#size-and-scale

Upvotes: 5

Related Questions