加载资源
了解如何在 Pixi’VN 中使用别名、捆绑包和不同的加载策略来加载和管理资源,保持游戏流畅运行。
特别是对于包含在线资源的游戏,遵循良好的加载规范至关重要,以避免漫长的等待时间并保持玩家的流畅体验。
要加载和操作资源(图片、GIF、视频等) ,您需要使用 Assets。 Assets 是一个功能丰富的类,来自 PixiJS 库。 更多信息请参阅此处。
使用别名加载资源
加载资源时,请始终使用其别名——在清单中或注册资源时定义的唯一标识符。 强烈不建议直接使用 src 路径:这会将代码与文件位置耦合,在路径或托管方式发生变化时变得脆弱。
import { Assets } from "@drincs/pixi-vn";
const texture = await Assets.load("eggHead");{
"bundles": [
{
"name": "default",
"assets": [
{
"alias": "eggHead",
"src": "./assets/eggHead.png"
}
]
}
]
}将资源组织到捆绑包中
最佳实践是将资源分组为捆绑包,而不是逐一注册。 捆绑包允许您通过单次调用加载一组资源,并将加载推迟到实际需要时。
对于本地资源,根据使用位置命名捆绑包不那么重要——由于本地文件加载即时,按屏幕或叙事节点(label)拆分并无实际好处。 这一规范对在线资源最有价值,因为有针对性的加载可以直接减少等待时间。
建议根据使用位置命名每个捆绑包。 例如:
- 对于在特定叙事节点(
label)中使用的资源,使用该叙事节点(label)的 id(例如startLabel.id)作为捆绑包名称 - 对于在对应屏幕(如主菜单)中使用的资源,使用路由路径(例如
"/")作为捆绑包名称
这样,您就可以在正确的时机加载恰好所需的资源,而不会加载多余的内容。
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",
},
],
},
],
};何时加载资源
默认情况下,资源按需加载——仅在实际需要时才加载。 然而,最后时刻加载可能会在游戏过程中造成明显的卡顿。
以下是提前加载资源最常见且推荐的时机: