Funzioni dei componenti canvas
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 estendeCanvasEvent
e che verrà eseguita quando l'evento viene attivato. Questa classe deve:- avere il metodo
fn
che 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;
}
}
}