docs: 同步 template 文档

This commit is contained in:
AncTe committed 2025-10-15 16:28:08 +08:00
1 parent b782aee922
commit 9e6d2e9924
23 files changed
+1306 -245

No files matched your search

+4 -4
View File
@@ -28,7 +28,7 @@ lang: zh-CN
相比于 2.10.3 及 2.A,有如下改动:
- [系统说明](./system)
- [UI 编写](./ui)
- [UI 系统](./ui/system)
- [音频系统](./audio)
- [系统说明](./system.md)
- [UI 编写](./ui/ui.md)
- [UI 系统](./ui/system.md)
- [音频系统](./audio.md)
+1 -1
View File
@@ -8,7 +8,7 @@
## 定义动画属性
我们以一个自定义 UI 为例,来讲述如何编写一段动画。自定义 UI 参考[此指南](./new-ui.md)和[此教程](../../guide/ui.md)。
我们以一个自定义 UI 为例,来讲述如何编写一段动画。自定义 UI 参考[此指南](./new-ui.md)和[此教程](../../guide/ui/ui.md)。
假设自定义 UI 在 `packages-user/client-modules/src/render/ui` 文件夹下,我们需要引入 `transitioned` 接口,并调用它定义动画属性:
+2 -2
View File
@@ -275,7 +275,7 @@ export const MyCom = defineComponent(props => {
- [ConfirmBox](../../api/user-client-modules/组件%20ConfirmBox.md)
- [Choices](../../api/user-client-modules/组件%20Choices.md)
- [Waitbox](../../api/user-client-modules/组件%20Waitbox.md)
- [WaitBox](../../api/user-client-modules/组件%20WaitBox.md)
- [getConfirm](../../api/user-client-modules/functions.md#getconfirm)
- [getChoice](../../api/user-client-modules/functions.md#getchoice)
- [waitbox](../../api/user-client-modules/functions.md#waitbox)
- [waitbox 方法](../../api/user-client-modules/functions.md#waitbox)
+1 -2
View File
@@ -14,7 +14,7 @@
- [新增勇士属性](./status-bar.md#拓展-新增勇士属性) (既包含客户端,也包含数据端)
- [编写新 UI](./new-ui.md)
- [UI 与组件的区别](./new-ui.md#拓展-ui-与组件的区别)
- [UI 编写参考](../ui.md)
- [UI 编写参考](../ui/ui.md)
- [新增按键](./hotkey.md)
- [添加辅助按键](./hotkey.md#拓展-添加辅助按键)
- [在 UI 内实现按键](./hotkey.md#拓展-在-ui-内实现按键)
@@ -36,7 +36,6 @@
- [用函数声明属性](./special.md#拓展-用函数声明属性)
- [地图伤害](./special.md#拓展-地图伤害)
- [光环属性](./special.md#拓展-光环属性)
- [输出回合数](./special.md#拓展-输出回合数)
- [主动技能](./skill.md)
- [多技能设计思路](./skill.md#拓展-多技能设计思路)
- [战后自动关闭技能](./skill.md#拓展-战后自动关闭技能)
+1 -1
View File
@@ -82,7 +82,7 @@ controller.close(ins);
## UI 编写参考
参考[此文档](../ui.md),此文档将会教你如何从头开始编写一个 UI,并解释 UI 运行与渲染的基本逻辑。
参考[此文档](../ui/ui.md),此文档将会教你如何从头开始编写一个 UI,并解释 UI 运行与渲染的基本逻辑。
## 拓展-UI 与组件的区别
+3 -3
View File
@@ -53,7 +53,7 @@ export function toggleSkill1() {
import { getSkill1Enabled } from '../machanism/skill'; // [!code ++]
export function calDamageWith(
info: UserEnemyInfo,
info: EnemyInfo,
hero: Partial<HeroStatus>
): number | null {
// ... 原有内容
@@ -241,7 +241,7 @@ export function getEnabledSkill() {
import { getEnabledSkill, SkillType } from './skill';
export function calDamageWith(
info: UserEnemyInfo,
info: EnemyInfo,
hero: Partial<HeroStatus>
): number | null {
// ... 原有内容
@@ -260,7 +260,7 @@ export function calDamageWith(
import { getEnabledSkill, SkillType } from './skill';
export function calDamageWith(
info: UserEnemyInfo,
info: EnemyInfo,
hero: Partial<HeroStatus>
): number | null {
// ... 原有内容
+10 -33
View File
@@ -26,13 +26,13 @@ export const specials: SpecialDeclaration[] = [
## 实现特殊属性
打开 `packages-user/data-state/src/enemy/damage.ts`,在文件最后的 `calDamageWith` 函数中编写:
打开 `packages-user/data-state/src/enemy/damage.ts`,在文件最后的 `calDamageWithTurn` 函数中编写:
```ts
export function calDamageWith(
info: UserEnemyInfo,
export function calDamageWithTurn(
info: EnemyInfo,
hero: Partial<HeroStatus>
): number | null {
): DamageWithTurn {
// ... 原有内容
// 在需要降低勇士伤害的地方将勇士伤害乘以 0.9 即可
@@ -102,13 +102,13 @@ export const specials: SpecialDeclaration[] = [
### 属性实现
修改 `damage.ts` `calDamageWith` 中的实现:
修改 `damage.ts` `calDamageWithTurn` 中的实现:
```ts
export function calDamageWith(
info: UserEnemyInfo,
export function calDamageWithTurn(
info: EnemyInfo,
hero: Partial<HeroStatus>
): number | null {
): DamageWithTurn {
// ... 原有内容
// 在乘以 1 - (myAttr / 100),除以 100 是因为 myAttr 是百分制
@@ -210,10 +210,11 @@ class DamageEnemy {
### 自定义形状
如果想要自定义光环形状,我们打开 `packages-user/data-utils/src/range.ts`,拉到最后可以看到形状定义,目前包含两个:
如果想要自定义光环形状,我们打开 `packages-user/data-utils/src/range.ts`,拉到最后可以看到形状定义,目前默认的包含这些:
- `square`: 中心点+边长的正方形
- `rect`: 左上角坐标+宽高的矩形
- `manhattan`: 曼哈顿距离,坐标之和小于半径
我们以曼哈顿距离为例,展示如何自定义形状。
@@ -262,27 +263,3 @@ col.applyHalo(
}
);
```
## 拓展-输出回合数
样板默认的 `calDamageWith` 函数只允许输出伤害值,而有时候我们可能会需要战斗的回合数,这时候我们需要修改一下这部分内容,将伤害计算逻辑单独提出来,命名为 `calDamageWithTurn`,然后在 `calDamageWith` 中调用它。在需要回合数的时候,我们调用 `calDamageWithTurn` 函数即可,如下例所示:
```ts
/** 包含回合数的伤害计算 */
export function calDamageWithTurn(
info: UserEnemyInfo,
hero: Partial<HeroStatus>
) {
// ... 原本 calDamageWith 的计算逻辑,记得删除最后返回伤害的那一行返回值
// 返回回合数和伤害
return { turn, damage };
}
export function calDamageWith(info: UserEnemyInfo, hero: Partial<HeroStatus>) {
// 调用单独提出的函数计算伤害值
const damageInfo = calDamageWithTurn(info, hero);
// 如果伤害不存在,那么返回无穷大
return damageInfo?.damage ?? Infinity;
}
```
+2 -2
View File
@@ -210,7 +210,7 @@ const realStatus: (keyof HeroStatus)[] = [
```ts
export function calDamageWith(
info: UserEnemyInfo,
info: EnemyInfo,
hero: Partial<HeroStatus>
): number {
// ... 原有逻辑
@@ -224,4 +224,4 @@ export function calDamageWith(
## 拓展-了解 UI 编写的基本逻辑
参考[此文档](./ui.md),此文档将会教你如何从头开始编写一个 UI,并解释 UI 运行与渲染的基本逻辑。
参考[此文档](../ui/ui.md),此文档将会教你如何从头开始编写一个 UI,并解释 UI 运行与渲染的基本逻辑。
+2 -2
View File
@@ -4,7 +4,7 @@
## 常见需求实现指南
参考[此文档](./implements.md)
参考[此文档](./implements/index.md)
## 热重载
@@ -22,7 +22,7 @@
当你**制作完游戏**后,点击构建游戏,即可自动构建游戏,构建结果在 `dist` 文件夹,会自动打包到 `dist.zip` 压缩包,发塔或更新上传此压缩包即可。
此帮助文档远比 2.x 的文档易读,也更容易理解,建议多阅读此文档来解决自己的问题,如果问题很复杂,或是短时间内解决不了,再去造塔群询问。
此帮助文档远比 2.x 的文档易读,也更容易理解,但是遇到问题时我们依然建议直接在造塔群询问,因为你可能不能判断文档中是否有关于你的问题的解答。
```mermaid
graph TD
+1 -1
View File
@@ -27,7 +27,7 @@ type ElementLocator = [
- `w` `h`: 元素的长宽,描述了在没有缩放时元素的矩形长宽,默认是没有放缩的。
- `ax` `ay`: 元素的锚点位置,描述了元素参考点的位置,所有位置变换等将以此点作为参考点。0 表示元素最左侧或最上侧,1 表示最右侧或最下侧,可以填不在 0-1 范围内的值,例如 `[-1, 1]` 表示锚点横坐标在元素左侧一个元素宽度的位置,纵坐标在元素下边缘的位置。
![锚点图示](./img/image.png)
![锚点图示](../img/image.png)
示例如下: