角色
如何在 Pixi’VN 中定义、使用和自定义角色,包括存储、情感和自定义属性。
什么是 characters? 角色(characters)是出现在视觉小说中的演员。 在 Pixi’VN 中,角色使用 CharacterBaseModel 类或自定义类创建。
初始化
要初始化角色,创建 CharacterBaseModel 类(或您的自定义类)的新实例,并在游戏初始化时将其添加到游戏角色字典中。
建议在项目启动时导入实例。
RegisteredCharacters.add 是必须的,用于将角色保存到游戏中。
import { CharacterBaseModel, RegisteredCharacters } from "@drincs/pixi-vn";
export const liam = new CharacterBaseModel("liam", {
name: "Liam",
surname: "Smith",
age: 25,
icon: "https://example.com/liam.png",
color: "#9e2e12",
});
export const emma = new CharacterBaseModel("emma", {
name: "Emma",
surname: "Johnson",
age: 23,
icon: "https://example.com/emma.png",
color: "#9e2e12",
});
RegisteredCharacters.add([liam, emma]);获取
要通过 id 获取角色,使用 RegisteredCharacters.get 函数。
import { RegisteredCharacters } from "@drincs/pixi-vn";
const liam = RegisteredCharacters.get("liam");获取全部
要获取所有角色,使用 RegisteredCharacters.values 函数。
import { RegisteredCharacters } from "@drincs/pixi-vn";
const characters = RegisteredCharacters.values();使用
ink
你可以在 ink 语法中使用此方法。 查看更多 此处。
您可以使用游戏角色,例如,将其链接到当前对话。 您可以使用角色的 id 或角色实例,但建议使用实例。
import { liam } from "@/content/characters";
narration.dialogue = { character: liam, text: "Hello" };
// or
narration.dialogue = { character: "liam_id", text: "Hello" };编辑
ink
你可以在 ink 语法中使用此方法。 查看更多 此处。
CharacterBaseModel 是一个 存储类,这意味着其属性保存在 游戏存储中。 例如,如果您在游戏中更改角色名称,新名称将保存在游戏存储中并与其 id 关联。
如果角色的 id 在版本之间发生更改,系统将不会将与前一个 id 关联的数据移动到新的 id。
要获取实例化类时使用的属性,可以使用 default 属性。
import { liam } from "@/content/characters";
console.log(liam.name); // Liam
liam.name = "Liam Smith";
console.log(liam.name); // Liam Smith