LogoPixi’VN

Funzioni dei componenti

Funzioni per aggiungere, trovare, rimuovere e gestire gli eventi sui componenti canvas in Pixi'VN.

Aggiungi

Per aggiungere un componente al canvas di gioco, puoi usare canvas.add. Questa funzione ha i seguenti parametri:

  • alias: L'alias per identificare il componente.
  • component: Il componente da aggiungere.
import { Assets, canvas, newLabel, Sprite } from "@drincs/pixi-vn";

export const startLabel = newLabel("start_label", [
    async () => {
        const sprite = new Sprite();
        const texture = await Assets.load("egg_head");
        sprite.texture = texture;
        canvas.add("sprite", sprite); 
    },
]);

Ottieni

Per ottenere un componente dal canvas di gioco, puoi usare canvas.find. Se il componente non esiste, restituirà undefined. Questa funzione ha i seguenti parametri:

  • alias: L'alias per identificare il componente.
import { Assets, canvas, newLabel, Sprite } from "@drincs/pixi-vn";

export const startLabel = newLabel("start_label", [
    async () => {
        const sprite = new Sprite();
        const texture = await Assets.load("egg_head");
        sprite.texture = texture;
        canvas.add("sprite", sprite);
    },
    () => {
        const sprite = canvas.find("sprite"); 
        if (sprite) {
            sprite.x = 100;
            sprite.y = 100;
        }
    },
]);

Rimuovi

Per rimuovere un componente dal canvas di gioco, puoi usare canvas.remove. Questa funzione ha i seguenti parametri:

  • alias: L'alias per identificare il componente.
import { Assets, canvas, newLabel, Sprite } from "@drincs/pixi-vn";

export const startLabel = newLabel("start_label", [
    async () => {
        const sprite = new Sprite();
        const texture = await Assets.load("egg_head");
        sprite.texture = texture;
        canvas.add("sprite", sprite);
    },
    () => {
        canvas.remove("sprite"); 
    },
]);

Rimuovi tutto

Per rimuovere tutti i componenti dal canvas di gioco, puoi usare canvas.removeAll.

import { Assets, canvas, newLabel, Sprite } from "@drincs/pixi-vn";

export const startLabel = newLabel("start_label", [
    async () => {
        const texture = await Assets.load("egg_head");
        for (let i = 0; i < 3; i++) {
            const sprite = new Sprite();
            sprite.texture = texture;
            sprite.x = i * 150;
            canvas.add(`sprite${i}`, sprite);
        }
    },
    () => {
        canvas.removeAll(); 
    },
]);

Aggiungere un listener a un evento

Se possibile, prova a utilizzare HTML e PixiJS UI per aggiungere pulsanti o altri elementi con eventi.

In Pixi'VN, rispetto a PixiJS, è possibile utilizzare un listener con il metodo on, ma se non si utilizza il decoratore @eventDecorator, l'evento non verrà registrato nel sistema di eventi di Pixi'VN, quindi se si carica un salvataggio in cui è stato utilizzato quell'evento, questo andrà perso.

@eventDecorator è un decorator che salva l'evento in memoria (Come abilitare i decorator in TypeScript?). Questa funzione ha i seguenti parametri:

  • name: L'ir utilizzato da Pixi'VN per fare riferimento a questa funzione (deve essere univoco). Se non si passa l'id, verrà utilizzato come id il nome della funzione.
import { eventDecorator, FederatedEvent, Sprite } from "@drincs/pixi-vn";

export default class Events {
    @eventDecorator()
    static buttonEvent(event: FederatedEvent, sprite: Sprite): void {
        switch (event.type) {
            case "pointerdown":
            sprite.scale.x *= 1.25;
            sprite.scale.y *= 1.25;
            break;
        }
    }
}