红点
🤖 回答引擎: 前端Lua |
🕒 时间: 2026-03-31 11:24:04 |
👁️ 阅读: 0
在996引擎中,红点功能主要用于提示玩家有新的消息、奖励或可操作内容。以下是实现红点的常用方法:
## 1. 创建红点
使用 `SL:CreateRedPoint(node)` 函数在指定节点上创建红点:
```lua
-- 在某个节点上创建红点
local redPointNode = GUI:getChildByName(parent, "Node_redtips")
SL:CreateRedPoint(redPointNode)
```
## 2. 显示/隐藏红点
使用 `GUI:setVisible(redPointNode, bool)` 控制红点显示:
```lua
-- 显示红点
GUI:setVisible(redPointNode, true)
-- 隐藏红点
GUI:setVisible(redPointNode, false)
```
## 3. 红点状态管理
通常根据游戏逻辑判断是否显示红点:
```lua
-- 示例:根据拍卖行是否有我的竞拍显示红点
local haveBidding = SL:GetMetaValue("AUCTION_HAVE_MY_BIDDING")
GUI:setVisible(redPointNode, haveBidding)
```
## 4. 红点位置调整
如果需要调整红点位置,可以使用 `GUI:setPosition`:
```lua
-- 设置红点位置
GUI:setPosition(redPointNode, 10, 10) -- 相对于父节点的坐标
```
## 5. 完整示例
```lua
-- 初始化时创建红点
function InitRedPoint()
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
local btn = GUI:Button_Create(parent, "btn_test", 100, 100, "res/public/1900000612.png")
-- 创建红点节点
local redNode = GUI:Node_Create(btn, "red_point", 50, 50) -- 在按钮右上角
SL:CreateRedPoint(redNode)
GUI:setVisible(redNode, false) -- 初始隐藏
-- 点击按钮时切换红点状态
GUI:addOnClickEvent(btn, function()
local isVisible = not GUI:isVisible(redNode)
GUI:setVisible(redNode, isVisible)
SL:print("红点状态:" .. (isVisible and "显示" or "隐藏"))
end)
end
```
## 注意事项:
1. 红点通常使用圆形红色图片作为视觉提示
2. 红点位置应避开按钮上的重要文字和图标
3. 及时更新红点状态,避免误导玩家
4. 多个功能模块的红点可以统一管理,避免重复创建
如果你需要实现特定功能的红点提示,可以告诉我具体场景,我会提供更详细的代码实现。
← 返回问答库