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, a differenza di PixiJS, non è possibile utilizzare un listener con il metodo on (perché on associa un evento a una lambda e le lambda non possono essere salvate nello stato corrente del canvas).
È possibile utilizzare onEvent, che ha un comportamento simile a on, ma associa un evento a una classe che estende CanvasEvent.
Questa funzione ha i seguenti parametri:
eventTypes: Il tipo di evento che verrà ascoltato. Puoi leggere l'elenco dei tipi di eventi qui.eventClass: La classe che estendeCanvasEvente che verrà eseguita quando l'evento viene attivato. Questa classe deve:- avere il metodo
fnche verrà eseguito quando l'evento viene attivato. - avere il decorator
@eventDecorator.@eventDecoratorè un decorator che salva l'evento nella memoria. Ha un parametro facoltativo che è l'id utilizzato da Pixi'VN per fare riferimento a questa classe (deve essere univoco). Se non si passa l'id, verrà utilizzato come id il nome della classe. (Come abilitare i decorator in TypeScript?)
- avere il metodo
import { CanvasEvent, CanvasEventNamesType, eventDecorator, Sprite } from "@drincs/pixi-vn";
@eventDecorator()
export default class ButtonEvent extends CanvasEvent<Sprite> {
override fn(event: CanvasEventNamesType, sprite: Sprite): void {
switch (event) {
case "pointerdown":
sprite.scale.x *= 1.25;
sprite.scale.y *= 1.25;
break;
}
}
}