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

3.7 KiB
Raw Blame History

RuneStateWindow 符文状态窗口

📋 功能概述

RuneStateWindow是一个用于显示当前穿戴符文状态的UI窗口主要功能包括

  1. 符文栏显示 - 根据当前穿戴装备显示符文列表
  2. 小丑牌动画 - 接收服务端符文执行记录后播放类似小丑牌的动画效果

🏗️ 文件结构

src/StarterPlayerScripts/UI/Windows/RuneStateWindow/
├── init.luau          # 主窗口文件
└── RuneShow.luau      # 符文显示组件

src/StarterPlayerScripts/ClientMain/
├── RuneExecutionClient.luau  # 客户端接收符文执行记录
└── TestRuneStateWindow.luau  # 测试脚本

🎮 使用方法

1. 打开符文状态窗口

-- 通过UIManager打开窗口
UIManager:OpenWindow("RuneStateWindow", {
    runeData = {
        {
            runeName = "RuneFireDamage",
            runeUniqueId = 1,
            level = 5,
            icon = "fire_icon"
        },
        {
            runeName = "RuneIceCoffin",
            runeUniqueId = 2,
            level = 3,
            icon = "ice_icon"
        }
    }
})

2. 接收符文执行记录

窗口会自动接收服务端发送的符文执行记录,并播放动画:

-- 服务端发送的数据格式
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方法来自定义动画效果:

function RuneStateWindow:CreateJokerCardEffect(runeItem, record)
    -- 自定义动画逻辑
    -- 可以添加更多特效、音效等
end

🐛 注意事项

  1. UI预制体 - 需要创建对应的UI预制体ui_w_rune_state
  2. 符文数据 - 需要正确配置符文JSON数据
  3. 图标资源 - 需要上传对应的符文图标资源
  4. 性能优化 - 大量符文时注意动画性能

📝 更新日志

  • v1.0.0 - 初始版本,支持基础符文显示和小丑牌动画
  • 支持符文执行记录接收和播放
  • 支持测试脚本快速验证功能