import * as Pixi from "pixi.js";
import bunny from "../bunny.png";
export default function createBunnyExample(args: { parent: Pixi.Container, x: number, y: number, ticker: Pixi.Ticker }) {
// Taken from https://pixijs.io/examples/#/demos-basic/container.js
const container = new Pixi.Container();
// Create a new texture
const texture = Pixi.Texture.from(bunny);
window.alert("doing bunny stuff")
// Create a 5x5 grid of bunnies
for (let i = 0; i < 25 ; i++) {
const bunny = new Pixi.Sprite(texture);
bunny.anchor.set(0.5);
bunny.x = (i % 5) * 40;
bunny.y = Math.floor(i / 5) * 40;
container.addChild(bunny);
bunny.interactive = true;
// bunny.addListener('pointerdown', () => {
// window.alert('clicked bunny #' + i);
// });
}
// console.log({ width: container.width, height: container.height });
// draw a boundary
const border = new Pixi.Graphics();
border.lineStyle(2, 0x000000);
border.beginFill(0, 0);
let bounds = container.getBounds()
border.drawRect(bounds.x, bounds.y, bounds.width, bounds.height);
container.addChild(border);
// Move container to the center
container.x = args.x;
container.y = args.y;
// Center bunny sprite in local container coordinates
// container.pivot.x = container.width / 2;
// container.pivot.y = container.height / 2;
let localBounds = container.getLocalBounds()
container.pivot.x = localBounds.x + localBounds.width / 2;
container.pivot.y = localBounds.y + localBounds.height / 2;
// console.log({ width: bounds.width, height: bounds.height });
// console.log({ width: container.width, height: container.height });
// Listen for animate update
args.ticker.add((delta) => {
// rotate the container!
// use delta to create frame-independent transform
container.rotation -= 0.01 * delta;
});
// Register it to the parent
args.parent.addChild(container);
// chaining?
return args.parent;
}