BagItemText = class("BagItemText")
local __GD_Style = SL:GetMetaValue("GAME_DATA", "goods_item_star_styleid") or ""
local IsWinPlayMode = SL:GetMetaValue("WINPLAYMODE")
local starOriPos = nil -- 初始星级位置
function BagItemText:ctor(parent, data)
s
在BagItemText类的`SetStarLevel`函数中,你添加了`SL:print(11111111)`这行代码,这会导致在显示星级时打印调试信息。不过我发现了一个逻辑问题:
在`SetStarLevel`函数中,你设置了`GUI:setVisible(ui_starLv, false)`,这会让星级文本始终不可见,即使有星级也不会显示出来。
根据浮生梦老师前端课程内容,正确的逻辑应该是:
1. 当有星级(star > 0)时,显示星级文本
2. 当没有星级时,隐藏星级文本
修正后的代码应该是:
```lua
-- 装备星级
function BagItemText:SetStarLevel(star)
local ui_starLv = self._ui["Text_star_lv"]
if not ui_starLv then
return false
end
if not (star and star > 0) then
GUI:setVisible(ui_starLv, false)
return false
end
SL:print(11111111) -- 你的调试打印
GUI:setVisible(ui_starLv, true) -- 这里应该是true,不是false
GUI:Text_setString(ui_starLv, "+" .. star)
local arrays = string.split(__GD_Style, "|")
__GD_Style = IsWinPlayMode and arrays[2] or arrays[1]
local styles = SL:Split(__GD_Style, "#")
local colorId = tonumber(styles[1])
local offX = tonumber(styles[2]) or 0
local offY = tonumber(styles[3]) or 0
if colorId then
GUI:Text_setTextColor(ui_starLv, SL:GetHexColorByStyleId(colorId))
local pos = GUI:getPosition(ui_starLv)
GUI:setPosition(ui_starLv, pos.x + offX, pos.y + offY)
end
end
```
这样修改后,当装备有星级时,会显示"+星数"的文本,并且会打印你的调试信息11111111。
如果你想要获取装备的极品属性,需要根据课程内容,使用类似`GUIFunction:GetExAttList()`这样的函数来解析极品属性数据。