rbxIdleWeapon/RUNE_STATE_WINDOW_README.md
2025-08-20 19:29:16 +08:00

148 lines
3.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# RuneStateWindow 符文状态窗口
## 📋 功能概述
RuneStateWindow是一个用于显示当前穿戴符文状态的UI窗口主要功能包括
1. **符文栏显示** - 根据当前穿戴装备显示符文列表
2. **小丑牌动画** - 接收服务端符文执行记录后播放类似小丑牌的动画效果
## 🏗️ 文件结构
```
src/StarterPlayerScripts/UI/Windows/RuneStateWindow/
├── init.luau # 主窗口文件
└── RuneShow.luau # 符文显示组件
src/StarterPlayerScripts/ClientMain/
├── RuneExecutionClient.luau # 客户端接收符文执行记录
└── TestRuneStateWindow.luau # 测试脚本
```
## 🎮 使用方法
### 1. 打开符文状态窗口
```lua
-- 通过UIManager打开窗口
UIManager:OpenWindow("RuneStateWindow", {
runeData = {
{
runeName = "RuneFireDamage",
runeUniqueId = 1,
level = 5,
icon = "fire_icon"
},
{
runeName = "RuneIceCoffin",
runeUniqueId = 2,
level = 3,
icon = "ice_icon"
}
}
})
```
### 2. 接收符文执行记录
窗口会自动接收服务端发送的符文执行记录,并播放动画:
```lua
-- 服务端发送的数据格式
local executionRecords = {
{
runeName = "RuneFireDamage",
runeUniqueId = 1,
index = 1,
timestamp = tick(),
action = "Execute",
attributesBefore = {attack = 100, hp = 1000},
attributesAfter = {attack = 150, hp = 1000},
behaviorListBefore = {"Attack"},
behaviorListAfter = {"Attack", "FireDamage"},
nextIndex = 2
}
}
```
### 3. 测试功能
使用测试脚本可以快速验证功能:
- **按 R 键** - 打开符文状态窗口
- **按 T 键** - 模拟接收符文执行记录
- **按 C 键** - 关闭符文状态窗口
## 🎨 动画效果
### 小丑牌动画特点
1. **金色光效** - 符文激活时显示金色发光效果
2. **缩放动画** - 符文图标会放大并旋转
3. **粒子效果** - 中心产生黄色粒子扩散效果
4. **顺序播放** - 多个符文按执行顺序依次播放动画
### 动画参数
- **动画时长**: 0.3秒
- **缩放比例**: 1.5倍
- **旋转角度**: 360度
- **颜色**: 金色(#FFD700)和黄色(#FFFF00)
## 🔧 技术实现
### 核心组件
1. **RuneStateWindow** - 主窗口管理
- 管理符文执行记录队列
- 控制动画播放顺序
- 处理窗口生命周期
2. **RuneShow** - 符文显示组件
- 显示符文图标、名称、等级
- 处理符文激活动画
- 管理组件生命周期
3. **RuneExecutionClient** - 客户端接收器
- 监听服务端符文执行记录
- 转发数据到窗口组件
### 数据流程
```
服务端符文执行 → RemoteEvent发送 → 客户端接收 → 窗口处理 → 动画播放
```
## 🎯 扩展功能
### 可扩展的动画效果
1. **音效支持** - 添加符文激活音效
2. **特效增强** - 添加更多视觉特效
3. **交互功能** - 点击符文查看详情
4. **状态显示** - 显示符文冷却时间
### 自定义动画
可以通过修改`CreateJokerCardEffect`方法来自定义动画效果:
```lua
function RuneStateWindow:CreateJokerCardEffect(runeItem, record)
-- 自定义动画逻辑
-- 可以添加更多特效、音效等
end
```
## 🐛 注意事项
1. **UI预制体** - 需要创建对应的UI预制体`ui_w_rune_state`
2. **符文数据** - 需要正确配置符文JSON数据
3. **图标资源** - 需要上传对应的符文图标资源
4. **性能优化** - 大量符文时注意动画性能
## 📝 更新日志
- **v1.0.0** - 初始版本,支持基础符文显示和小丑牌动画
- 支持符文执行记录接收和播放
- 支持测试脚本快速验证功能