文档
场景

场景

⚠️

本页面正在建设中

⚠️

测试功能,可能会有变动

该类继承自 Displayble

Scene 包含可以在场景上执行的多个操作

例如,你可以向场景添加一个 Character 操作

import { Scene } from 'narraleaf-react';
 
const scene = new Scene("scene 1");
const character1 = new Character("character 1");
 
scene.action([
    character1
        .say("Hello World")
        .say("How are you?"),
]);

公共属性

local

scene.local 是一个 Persistent 实例,仅限于场景内使用 它用于存储仅在场景中可用的临时数据

本地数据不需要注册或初始化,但在使用前是“未定义”的

当场景退出时,本地数据将被丢弃

scene.action([
    new Menu("你想喝哪种咖啡?")
        .choose("拿铁", [
            scene.local.set("coffee", "latte"),
        ])
        .choose("卡布奇诺", [
            scene.local.set("coffee", "cappuccino"),
        ]),
    character1.say`你选择了 ${scene.local.get("coffee")} 咖啡`,
]);

background

此属性用于访问场景的背景 Image 实例

scene.background
    .char("background.png", new Dissolve(1000, "linear"))

backgroundLayer

此属性用于访问场景的背景层
该层包含场景的背景图像

scene.backgroundLayer.opacity(0.5, 1000, "linear")

displayableLayer

此属性用于访问场景的可显示层
该层包含所有不属于任何特定层的可显示对象

scene.displayableLayer.opacity(0.5, 1000, "linear")

公共方法

constructor

  • name: string - 场景名称
  • config?: Partial<ISceneUserConfig> - ISceneUserConfig

action

向场景添加操作。不要多次调用此方法

重载 1 of 2

  • actions: (ChainableAction | ChainableAction[])[] - 要执行的操作,参见 ChainedActions

重载 2 of 2

此重载允许你传递一个函数,该函数接收场景实例并返回要执行的操作

在某些情况下,你可能希望为场景实例创建一个快捷方式

story.entry(
    new Scene("scene 1").action(scene => [
        scene
            .setBackground(background)
            .sleep(1000),
    ])
);
  • actions: ((scene: Scene) => ChainedAction[]) - 要执行的操作,参见 ChainedActions
  • 返回 this

preloadImage

手动注册图像源

  • src: string | string[] - 图像的 URL 或 URL 数组
  • 返回 this

可链式方法

setBackground

scene.background.char 的别名

设置场景的背景。如果提供了过渡效果,背景将以过渡效果更改

scene.action([
    scene.setBackground("background.png")
 
    // 等同于
    scene.background.char("background.png")
]);
  • background: Color | ImageSrc - 参见 Color 以及 ImageSrc
  • transition?: ImageTransition - 对于 ImageTransition,参见 Transition

jumpTo

跳转到另一个场景。如果提供了过渡效果,场景将以过渡效果更改

注意:跳转到另一个场景后,当前场景将被释放。剩余的操作将不会执行

  • scene: Scene | string - 要跳转到的场景实例或场景名称
  • config: Partial<JumpConfig> - 跳转配置

sleep

在执行下一个操作之前休眠一段时间

scene.action([
    scene.sleep(1000)
]);

重载 1 / 2

  • ms: number - 以毫秒为单位的持续时间

重载 2 / 2

  • promise: Promise<any> - 要等待的 Promise

setBackgroundMusic

设置场景的背景音乐

  • sound: Sound - Sound 实例
  • fade?: number - 如果设置,将对之前的音乐应用淡出效果,并对当前音乐应用淡入效果,持续时间为毫秒