---常量定义
local CONST = {
-- 飞剑数量控制
MAX_SWORD_COUNT = 6, -- 最大飞剑数量
MIN_SWORD_COUNT = 1, -- 最小飞剑数量
MAX_SEARCH_DIS = 8, -- 最大索敌距离
MAX_ATTACK_DIS = 12, -- 最大攻击距离
FAR_BACK_DI
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-04-08 22:43:20 |
👁️ 阅读: 0
这段代码的优化主要可以从几个方面入手:提高可读性、减少硬编码、增强维护性。根据浮生梦老师前端课程内容,建议如下优化:
```lua
-- 优化后的常量定义
local CONST = {
-- 飞剑系统配置
SWORD = {
MAX_COUNT = 6, -- 最大飞剑数量
MIN_COUNT = 1, -- 最小飞剑数量
DEFAULT_ID = 10, -- 默认飞剑ID(替换feiId变量)
SPECIAL_ID = 99, -- 特殊飞剑ID
CONFIG = {
START_ID = 10, -- 飞剑配置起始ID
END_ID = 16, -- 飞剑配置结束ID
}
},
-- 特效配置
EFFECT = {
HIT_ID = 133, -- 命中特效ID(替换hitEffId变量)
PARTICLE = {
IDLE_COUNT = 40, -- 待机粒子数量
ATTACK_COUNT = 160, -- 攻击粒子数量
IDLE_LIFE = 0.4, -- 待机粒子寿命
ATTACK_LIFE = 0.8, -- 攻击粒子寿命
}
},
-- 距离配置
DISTANCE = {
MAX_SEARCH = 8, -- 最大索敌距离
MAX_ATTACK = 12, -- 最大攻击距离
FAR_BACK = 1000, -- 超出返回距离
BEZIER_CONTROL = 300, -- 贝塞尔控制点距离
BEZIER_END_OFFSET = 200, -- 贝塞尔终点偏移距离
OFFSET_Y = 30, -- Y轴偏移量
},
-- 时间配置
DURATION = {
ATTACK_MIN = 0.3, -- 攻击最短持续时间
ATTACK_MAX = 0.5, -- 攻击最长持续时间
ATTACK_WAIT = 0.7, -- 攻击等待持续时间
BACK = 1, -- 返回持续时间
IDLE = 1, -- 待机持续时间
FAST_BACK = 0.5, -- 快速返回持续时间
},
-- 圆环配置
ORBIT = {
BASE_RADIUS = 100, -- 基础圆环半径
BASE_SPEED = math.pi / 1.5, -- 基础旋转速度
IDLE_SPEED = math.pi / 1.5, -- 待机旋转速度
-- 根据飞剑数量的动态配置
RADIUS_BY_COUNT = { -- 半径按数量调整
[1] = 35,
[2] = 40,
[3] = 45,
[4] = 50,
[5] = 55,
[6] = 60,
},
SPEED_BY_COUNT = { -- 速度按数量调整
[1] = math.pi / 1.5,
[2] = math.pi / 1.55,
[3] = math.pi / 1.6,
[4] = math.pi / 1.65,
[5] = math.pi / 1.7,
[6] = math.pi / 1.75,
}
}
}
-- 使用示例:
-- 1. 获取飞剑ID(替换原来的feiId)
local swordId = CONST.SWORD.DEFAULT_ID
-- 2. 获取命中特效ID(替换原来的hitEffId)
local hitEffectId = CONST.EFFECT.HIT_ID
-- 3. 根据飞剑数量获取圆环半径
local function getOrbitRadius(swordCount)
return CONST.ORBIT.RADIUS_BY_COUNT[swordCount] or CONST.ORBIT.BASE_RADIUS
end
-- 4. 根据飞剑数量获取旋转速度
local function getOrbitSpeed(swordCount)
return CONST.ORBIT.SPEED_BY_COUNT[swordCount] or CONST.ORBIT.BASE_SPEED
end
-- 5. 获取配置范围
local configStartId = CONST.SWORD.CONFIG.START_ID
local configEndId = CONST.SWORD.CONFIG.END_ID
SL:Print("飞剑系统常量优化完成")
```
**优化说明:**
1. **结构化分组**:将相关常量按功能分组,提高代码可读性
2. **消除硬编码**:将`feiId`和`hitEffId`变量整合到常量表中
3. **语义化命名**:使用更清晰的命名方式,如`CONST.SWORD.DEFAULT_ID`
4. **函数封装**:提供辅助函数动态获取配置值
5. **维护性提升**:所有配置集中管理,修改时只需调整常量表
这样优化后,代码更加清晰,维护更方便,也符合996引擎的开发规范。
← 返回问答库