对话框
⚠️
本页面正在建设中。
对话框组件用于渲染对话框,包括角色名牌和对话文本。
要自定义对话框,您可以创建自己的组件并替换默认组件。您还可以自定义 Nametag
和 Texts
组件。
示例
- 导入组件
import { useState } from "react";
import { Dialog, Texts, Nametag, useGame } from "narraleaf-react";
- 插入组件
function GameDialog() {
return (
<Dialog className="bg-white">
<Nametag className="font-bold" />
<Texts className="text-lg" />
</Dialog>
);
}
- 配置游戏
function App() {
const game = useGame();
useEffect(() => {
game.configure({
dialog: GameDialog,
});
}, []);
return /* ... */
}
组件
Dialog
Dialog 组件用于渲染对话框。它的子组件是 Nametag
和 Texts
。
children?: React.ReactNode
- 对话框的子元素。...props: React.HTMLAttributes<HTMLDivElement>
- 对话框的属性。
Nametag
Nametag 组件用于渲染角色名牌。它是 Dialog
组件的子组件。
注意: 名牌的颜色在角色配置中预定义,您不应通过 CSS 覆盖它。
...props: React.HTMLAttributes<HTMLDivElement>
- 名牌的属性。
Texts
Texts 组件用于渲染对话文本。它是 Dialog
组件的子组件。
注意: 文本的样式由单词/句子配置控制,您不应通过 CSS 覆盖它。
但是,您可以自定义任何未预定义的内容,例如背景颜色、字体、大小等。
children?: never
...props: React.HTMLAttributes<HTMLDivElement>
- 文本框的属性。
自定义对话框
以下是更多自定义对话框的示例:
示例 1: 自定义对话框
function GameDialog() {
return (
<Dialog
style={{
backgroundColor: "rgba(0, 0, 0, 0.5)",
borderRadius: "10px",
padding: "20px",
}}
>
{/* ... */}
</Dialog>
);
}
示例 2: 自定义名牌
function GameDialog() {
return (
<Dialog>
<Nametag
style={{
backgroundImage: "url('/path/to/image.png')",
backgroundSize: "cover",
width: "100%",
height: "100%",
}}
/>
{/* ... */}
</Dialog>
);
}