LogoPixi’VN

Управление ресурсами

Организация, привязка и загрузка ресурсов (изображений, звуков, видео) в Pixi'VN с помощью псевдонимов и манифестов.

Чтобы загружать и управлять ресурсами (изображениями, гифками, видео и т. д.) необходимо использовать Assets. Assets — это класс с множеством функций, который принадлежит библиотеке PixiJS. Для получения дополнительной информации, ознакомьтесь здесь.

Во всех функциях Pixi'VN можно напрямую использовать URL-адрес изображения, даже если он не определен в Assets.

let alien1 = await showImage("alien", "https://pixijs.com/assets/eggHead.png");

Этот метод имеет несколько недостатков:

  • Изменение URL-адреса ресурса из одной версии в другую может привести к несовместимости.
  • The player will have to wait for a short loading time every time they press "continue" and a step is started that uses assets.
  • Запись всего URL в коде увеличит его длину и сделает менее читабельным.

По этим причинам рекомендуется работать с ресурсами следующим образом.

Инициализация матрицы ресурсов в начале проекта

Инициализация матрицы ресурсов в начале проекта позволяет ссылаться на ресурсы по уникальному псевдониму без необходимости использовать URL/путь. Используя псевдоним, вы можете изменить URL-адрес ресурсов, не заботясь о совместимости версий.

Для этого рекомендуется создать асинхронную функцию defineAssets, которая будет вызываться при старте проекта. В функции defineAssets используйте Assets (например, Assets.add, Assets.addBundle и Assets.init) для назначения псевдонимов URL. Более подробную информацию о них можно найти здесь, чтобы назначить псевдоним каждым ресурсам.

import { Assets, sound } from "@drincs/pixi-vn";
import manifest from "../assets/manifest";

export async function defineAssets() {
    // manifest
    await Assets.init({ manifest });
    // single asset
    Assets.add({ alias: 'eggHead', src: "https://pixijs.com/assets/eggHead.png" })
    Assets.add({ alias: 'flowerTop', src: "https://pixijs.com/assets/flowerTop.png" })
    Assets.add({ alias: 'video', src: "https://pixijs.com/assets/video.mp4" })
    sound.add('bird', 'https://pixijs.io/sound/examples/resources/bird.mp3');
    sound.add('musical', 'https://pixijs.io/sound/examples/resources/musical.mp3');
    // bundle
    Assets.addBundle('liam', {
        "liam-head": 'liam_head.png',
        "liam-body": 'liam_body.png',
        "liam-arms": 'liam_arms.png',
    });
}

Загрузка ресурсов

По умолчанию ресурсы загружаются только при необходимости.

Но если ресурсы сохранены не локально, а на "хостинге ресурсов", их загрузка может занять некоторое время. Это означает, что начало шага может быть не мгновенным. So, after starting the execution of the next step (for example with the "next" button), the player may have to wait some time to "view" the changes and be able to run another step.

Выполнение этих загрузок на каждом шаге может раздражать игрока, даже если они очень короткие.

Чтобы решить эту проблему, разработчик может сгруппировать несколько загрузок на определенном этапе игры. Таким образом, игрок будет испытывать не постоянные загрузки, а меньшие, пусть и более длительные.

Вот различные способы загрузки ресурсов:

On this page