LogoPixi’VN

Carga de assets

Aprende a cargar y gestionar assets en Pixi’VN usando alias, bundles y diferentes estrategias de carga para mantener tu juego fluido.

Especialmente en juegos con assets en línea, seguir buenas prácticas de carga es esencial para evitar largos tiempos de espera y mantener una experiencia fluida para el jugador.

Para cargar y manipular assets (imágenes, gifs, vídeos, etc.) necesitarás usar Assets. Assets es una clase con muchas funcionalidades y proviene de la librería PixiJS. Para más información, lee aquí.

Usar alias para cargar assets

Para cargar un asset, usa siempre su alias — el identificador único definido en el manifiesto o al registrar el asset. Se desaconseja firmemente usar la ruta src directamente: acopla tu código a la ubicación del archivo, haciéndolo frágil cuando cambien las rutas o el alojamiento.

main.ts
import { Assets } from "@drincs/pixi-vn";

const texture = await Assets.load("eggHead");
assets/manifest.gen.json
{
    "bundles": [
        {
            "name": "default",
            "assets": [
                {
                    "alias": "eggHead",
                    "src": "./assets/eggHead.png"
                }
            ]
        }
    ]
}

Organizar los assets en bundles

Una buena práctica es agrupar los assets en bundles en lugar de registrarlos individualmente. Los bundles te permiten cargar un conjunto completo de assets con una sola llamada, y diferir la carga hasta que los assets sean realmente necesarios.

Para los assets locales, nombrar los bundles en función de dónde se usan es menos crítico — dado que los archivos locales se cargan instantáneamente, no hay ningún beneficio real en dividirlos por pantalla o label. Esta convención es más valiosa para los assets en línea, donde una carga dirigida reduce directamente los tiempos de espera.

Se recomienda nombrar cada bundle en función de dónde se usará. Por ejemplo:

  • usa el id del label (por ejemplo, startLabel.id) como nombre del bundle para los assets usados en ese label específico
  • usa la ruta de la ruta (por ejemplo, "/") como nombre del bundle para los assets usados en la pantalla correspondiente, como el menú principal

De esta forma, puedes cargar exactamente los assets correctos en el momento adecuado, sin cargar más de lo necesario.

assets/index.ts
import { startLabel } from "@/content/labels/start.label";
import type { FileRouteTypes } from "@/routeTree.gen";
import type { AssetsManifest } from "@drincs/pixi-vn";

export const manifest: AssetsManifest = {
    bundles: [
        // screens
        {
            // main menu
            name: "/" as FileRouteTypes["fullPaths"],
            assets: [
                {
                    alias: "background_main_menu",
                    src: "https://raw.githubusercontent.com/user/project/refs/heads/main/main-menu.png",
                },
            ],
        },
        // labels
        {
            name: startLabel.id,
            assets: [
                {
                    alias: "bg01-hallway",
                    src: "https://raw.githubusercontent.com/user/project/refs/heads/main/breakdown/bg01-hallway.webp",
                },
            ],
        },
    ],
};

Cuándo cargar los assets

Por defecto, los assets se cargan bajo demanda — solo cuando son realmente necesarios. Sin embargo, cargar en el último momento puede causar pausas notables durante el juego.

Estos son los momentos más comunes y recomendados para cargar los assets con antelación:

En esta página