【脚本】一个自动循环画按钮的脚本,并且实现抽屉效果
把MainRightTop.lua放到GUILayout就可以用了
一共做了3排按钮可以直接写数量
改一下对应按钮的路径就可以了,有2个地方要改一个是默认的 一个是收起的 就是类似这些 icon1_1
要配置红点就是主界面右 按钮id就是icon1_1
icon1_1 代表 第1行 第1个按钮
icon1_2 代表 第1行 第2个按钮
icon2_1 代表 第2行 第1个按钮
以此类推....
QF脚本
[@Message_99]
#if
#act
sendmsg 6 前端传过来的自定义的消息头:<$CUSTMSGPARAM>
#if
EQUAL <$CUSTMSGPARAM> 图标1
#act
sendmsg 6 执行图标1
break
#if
EQUAL <$CUSTMSGPARAM> 图标2
#act
sendmsg 6 执行图标2
break
MainRightTop.lua
MainRightTop = {}
function MainRightTop.main()
local parent = GUI:Attach_RightTop()
local Layout_0 = GUI:Layout_Create(parent, "Layout_0", -730, -200, 560, 210, false)
local Layout_1 = GUI:Layout_Create(parent, "Layout_1", -730, -200, 560, 210, false)
GUI:setVisible(Layout_1, false)
GUI:Timeline_MoveTo(Layout_1, {x=-730,y=0}, 0.2)
local iconWidth = 70
local iconHeight = 70
local iconPaddingX = -5 -- 图标之间的水平间隔
local iconPaddingY = -5 -- 图标之间的垂直间隔
local numRows = 3 -- 图标的行数
local startX = 1 -- 起始x坐标
local startY = 1 -- 起始y坐标
-- 每排图标的列数
local numCols = {
7, -- 第一排图标个数
4, -- 第二排图标个数
4 -- 第三排图标个数
}
local IconData = {
icon1_1 = {notes = "图标1" , path = "res/icon/icon1_1.png"},
icon1_2 = {notes = "图标2" , path = "res/icon/icon1_1.png"},
icon1_3 = {notes = "图标3" , path = "res/icon/icon1_1.png"},
icon1_4 = {notes = "图标4" , path = "res/icon/icon1_1.png"},
icon1_5 = {notes = "图标4" , path = "res/icon/icon1_1.png"},
icon1_6 = {notes = "图标4" , path = "res/icon/icon1_1.png"},
icon1_7 = {notes = "图标4" , path = "res/icon/icon1_1.png"},
icon2_1 = {notes = "图标5" , path = "res/icon/icon1_1.png"},
icon2_2 = {notes = "图标6" , path = "res/icon/icon1_1.png"},
icon2_3 = {notes = "图标7" , path = "res/icon/icon1_1.png"},
icon2_4 = {notes = "图标8" , path = "res/icon/icon1_1.png"},
icon3_1 = {notes = "图标9" , path = "res/icon/icon1_1.png"},
icon3_2 = {notes = "图标10" , path = "res/icon/icon1_1.png"},
icon3_3 = {notes = "图标11" , path = "res/icon/icon1_1.png"},
icon3_4 = {notes = "图标12" , path = "res/icon/icon1_1.png"},
}
-- -- 循环创建图标
for row = 1, numRows do
local currentNumCols = numCols[row]
for col = 1, currentNumCols do
local iconX = 450 - (startX + (iconWidth + iconPaddingX) * (col - 1)) ---数字约大越往右靠
local iconY = startY + (iconHeight + iconPaddingY) * (numRows - row)
local iconName = "icon" .. row .. "_" .. col
local path = IconData[iconName].path
-- 创建图标,使用 iconX 和 iconY 作为左上角坐标
local button = GUI:Button_Create(Layout_0, iconName, iconX, iconY, path)
GUI:addOnClickEvent(button, function () SL:SendNetMsg(99, 0, 0, 0, IconData[iconName].notes) ; end)
end
end
-- 每排图标的列数
local numCols_1 = {
4, -- 第一排图标个数
2, -- 第二排图标个数
0 -- 第三排图标个数
}
local IconData_1 = {
icon1_1 = {notes = "图标1" , path = "res/icon/icon1_1.png"},
icon1_2 = {notes = "图标2" , path = "res/icon/icon1_1.png"},
icon1_3 = {notes = "图标3" , path = "res/icon/icon1_1.png"},
icon1_4 = {notes = "图标4" , path = "res/icon/icon1_1.png"},
icon2_1 = {notes = "图标5" , path = "res/icon/icon1_1.png"},
icon2_2 = {notes = "图标6" , path = "res/icon/icon1_1.png"},
}
-- -- 循环创建图标
for row = 1, numRows do
local currentNumCols = numCols_1[row]
for col = 1, currentNumCols do
local iconX = 450 - (startX + (iconWidth + iconPaddingX) * (col - 1)) ---"450"数字约大越往右靠
local iconY = startY + (iconHeight + iconPaddingY) * (numRows - row)
local iconName = "icon" .. row .. "_" .. col
local path = IconData_1[iconName].path
-- 创建图标,使用 iconX 和 iconY 作为左上角坐标
local button = GUI:Button_Create(Layout_1, iconName, iconX, iconY, path)
GUI:addOnClickEvent(button, function () SL:SendNetMsg(99, 0, 0, 0, IconData_1[iconName].notes) ; end)
end
end
---调试用代码
--GUI:Layout_setBackGroundColor(Layout_0, "#000000")
--GUI:Layout_setBackGroundColorType(Layout_0, 1)
--GUI:Layout_setBackGroundColor(Layout_1, "#000000")
--GUI:Layout_setBackGroundColorType(Layout_1, 1)
local Button = GUI:Button_Create(parent, "Button", -220, -45, "res/icon/0_1.png") --收起按钮 x 越小-越右 y越小-越上
GUI:addOnClickEvent(Button, function()
if GUI:getVisible(Layout_0) == true then
GUI:Timeline_MoveTo(Layout_0, {x=-730,y=0}, 0.2, function ()
GUI:setVisible(Layout_0, false)
GUI:setVisible(Layout_1, true)
GUI:Timeline_MoveTo(Layout_1, {x=-730,y=-200}, 0.2)
GUI:Button_loadTextureNormal(Button, "res/icon/0_2.png")
end)
else
GUI:Timeline_MoveTo(Layout_1, {x=-730,y=0}, 0.2, function ()
GUI:setVisible(Layout_0, true)
GUI:setVisible(Layout_1, false)
GUI:Timeline_MoveTo(Layout_0, {x=-730,y=-200}, 0.2)
GUI:Button_loadTextureNormal(Button, "res/icon/0_1.png")
end)
end
end)
end
为了大家能更好的学习996传奇引擎的技术,本站分享的部分内容来源于网络,无任何商业行为,如有侵权请立即告知!
THE END