feat(data): 添加随机颜色生成功能并重构发光滤镜默认配置 - 引入 grand 包用于生成随机数 - 将 GlowFilterDefault 常量改为 GetDef() 函数,实现动态配置 - 修改默认发光滤镜参数:Alpha从0.8改为0.1,BlurX/BlurY从10改为8, Quality从2改为1,Level从1改为2 - 新增 RandomRGBToUint32() 函数生成随机RGB颜色并转换为uint32格式 - 在GetDef()函数中使用随机颜色替代固定颜色值 refactor(config): 优化闪光效果服务中的矩阵生成逻辑 - 移除不必要的变量声明,直接在赋值时调用GenerateRandomOffspringMatrix
This commit is contained in:
@@ -1,5 +1,7 @@
|
|||||||
package data
|
package data
|
||||||
|
|
||||||
|
import "github.com/gogf/gf/v2/util/grand"
|
||||||
|
|
||||||
// 1. 质量枚举常量(保持不变)
|
// 1. 质量枚举常量(保持不变)
|
||||||
const (
|
const (
|
||||||
BitmapFilterQualityLow = 1 // LOW:应用1次滤镜
|
BitmapFilterQualityLow = 1 // LOW:应用1次滤镜
|
||||||
@@ -20,23 +22,33 @@ const (
|
|||||||
colorMax = 0xFFFFFF // 颜色值最大值(0xRRGGBB)
|
colorMax = 0xFFFFFF // 颜色值最大值(0xRRGGBB)
|
||||||
)
|
)
|
||||||
|
|
||||||
// GlowFilterDefault 默认值:与目标JSON完全匹配的常量
|
func GetDef() GlowFilter {
|
||||||
var GlowFilterDefault = GlowFilter{
|
|
||||||
Color: 16777215, // 0xFFFFFF(对应JSON的color:16777215)
|
ret := GlowFilter{
|
||||||
Alpha: 0.8, // 对应JSON的alpha:0.8
|
// Color: 16777215, // 0xFFFFFF(对应JSON的color:16777215)
|
||||||
BlurX: 10, // 对应JSON的blurX:10
|
Alpha: 0.1, // 光圈大小,透明度
|
||||||
BlurY: 10, // 对应JSON的blurY:10
|
BlurX: 8, // 局外光圈大小
|
||||||
Strength: 8, // 对应JSON的strength:8
|
BlurY: 8, // 局外光圈大小
|
||||||
Quality: 2, // 对应JSON的quality:2
|
Strength: 8, // 颜色对比度
|
||||||
Inner: true, // 对应JSON的inner:true
|
Quality: 1, // 背包内光圈大小
|
||||||
Knockout: false, // 无JSON值,默认false
|
Inner: true, // 对应JSON的inner:true
|
||||||
ColorMatrixFilter: [20]float32{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, // 对应JSON的matrix数组
|
Knockout: false, // 无JSON值,默认false
|
||||||
Level: 1, // 对应JSON的level:"1"(转uint8)
|
ColorMatrixFilter: [20]float32{1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0}, // 对应JSON的matrix数组
|
||||||
|
Level: 2, // 对应JSON的level:"1"(转uint8)
|
||||||
|
}
|
||||||
|
ret.Color = RandomRGBToUint32()
|
||||||
|
return ret
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDef() GlowFilter {
|
// RandomRGBToUint32 生成随机RGB颜色并转为uint32(格式:0x00RRGGBB,最高8位留空)
|
||||||
return GlowFilterDefault
|
func RandomRGBToUint32() uint32 {
|
||||||
|
// 生成0-255的随机R/G/B分量
|
||||||
|
r := uint32(grand.Intn(256))
|
||||||
|
g := uint32(grand.Intn(256))
|
||||||
|
b := uint32(grand.Intn(256))
|
||||||
|
|
||||||
|
// 位拼接:R左移16位,G左移8位,B不位移,组合成uint32
|
||||||
|
return (r << 16) | (g << 8) | b
|
||||||
}
|
}
|
||||||
|
|
||||||
// 精灵加shinylen字段
|
// 精灵加shinylen字段
|
||||||
|
|||||||
@@ -71,10 +71,10 @@ func (s *ShinyService) RandShiny(id uint32) *data.GlowFilter {
|
|||||||
if len(ret) == 0 {
|
if len(ret) == 0 {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
r := model.GenerateRandomOffspringMatrix()
|
|
||||||
var t = data.GetDef()
|
var t = data.GetDef()
|
||||||
|
|
||||||
t.ColorMatrixFilter = r.Get()
|
t.ColorMatrixFilter = model.GenerateRandomOffspringMatrix().Get()
|
||||||
|
|
||||||
return &t
|
return &t
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user