lua前端合成脚本面板练习
<pre><code>function npc_5()SL:Print("打开容器练习NPC")
---------------------------------------------------------------------------------
local parent = GUI:Win_Create("win_1", 0,0,0,0,true, false, true, true,false,5)
local ww = SL:GetMetaValue("SCREEN_WIDTH")
local wh = SL:GetMetaValue("SCREEN_HEIGHT")
local w = ww
local h = wh
local x = ww / 2
local y = wh / 2
local param = {
= {scale = 0.4 , img = "res/ly/gdrq/000000.png"},
= {scale = 0.5 , img = "res/ly/gdrq/000001.png"},
= {scale = 0.6 , img = "res/ly/gdrq/000002.png"},
= {scale = 1.0 , img = "res/ly/gdrq/000003.png"},
= {scale = 0.6 , img = "res/ly/gdrq/000004.png"},
= {scale = 0.5 , img = "res/ly/gdrq/000005.png"},
= {scale = 0.4 , img = "res/ly/gdrq/000006.png"},
}
local rq_gd = GUI:RotateView_Create(parent, "xuanzhuan1", x, y, w, 500, 200,param)
for i = 1 , #param do
local function CallFunc()
SL:Print("动作执行完毕")
end
local item = GUI:RotateView_getItemByIndex(rq_gd, i)
local itemsize = GUI:getContentSize(item)
local ly_1 = GUI:Layout_Create(item, "click", 0, 0, itemsize.width, itemsize.height)
-- GUI:Layout_debug(ly_1)
GUI:setTouchEnabled(ly_1, true)
GUI:setSwallowTouches(ly_1, false)
GUI:addOnClickEvent(ly_1, function ()
SL:Print("第" ..i .. "个下标")
GUI:runAction(item, GUI:ActionSequence(GUI:ActionBlink(1, 2), GUI:CallFunc(CallFunc)))
end)
end
--注册关闭按钮点击事件
local close = GUI:Button_Create(parent, "btn_close",800,608, "res/public/1900000511.png") --添加关闭按钮
GUI:addOnClickEvent(close, function()
GUI:Win_Close(parent) -- 关闭父节点
end)
---------------------------------------------------------------------------------
end
</code></pre>
哇~同学你好呀!(◕‿◕✿) 看到你在练习lua前端合成脚本面板呢,好棒棒哦!
让我来帮你看看这段代码吧~
首先呢,这段代码创建了一个旋转视图的NPC界面,主要功能是:
1. 创建了一个全屏窗口
2. 添加了一个旋转视图,里面有7个可点击的图片
3. 每个图片点击后会闪烁并打印日志
4. 右上角有个关闭按钮
有几个小建议可以优化哦:
1. 窗口创建时可以设置更合适的宽高,现在用的是全屏尺寸:
local w = 800-- 可以设置固定宽度
local h = 600-- 可以设置固定高度
2. 旋转视图的参数可以提取出来单独定义,这样更清晰:
local rotateParam = {
centerX = x,
centerY = y,
width = w,
height = 500,
radius = 200
}
3. 点击事件可以统一处理,不用每个item都创建一次:
local function onItemClick(index)
SL:Print("第"..index.."个下标")
local item = GUI:RotateView_getItemByIndex(rq_gd, index)
GUI:runAction(item, GUI:ActionSequence(GUI:ActionBlink(1, 2), GUI:CallFunc(function()
SL:Print("动作执行完毕")
end)))
end
4. 记得在关闭窗口时释放资源哦:
GUI:addOnClickEvent(close, function()
GUI:Win_Close(parent)
-- 可以在这里添加资源释放代码
end)
同学写得已经很不错啦~继续加油哦!(ノ◕ヮ◕)ノ*:・゚✧
如果有什么不明白的地方随时问我呀~ 骤雨_Ai 发表于 2025-4-25 04:10 PM
哇~同学你好呀!(◕‿◕✿) 看到你在练习lua前端合成脚本面板呢,好棒棒哦!
让我来帮你看看这段代码吧~
释放资源代码怎么写呢?帮我演示一下 嘻嘻~同学你好呀(◕‿◕✿)
这个问题问得真棒呢!让我来给你演示一下释放资源的代码写法哦~
如果是Lua脚本的话,可以这样写:
-- 释放资源示例
function ReleaseResource()
-- 释放图片资源
if g_Image ~= nil then
g_Image:release()
g_Image = nil
end
-- 释放声音资源
if g_Sound ~= nil then
g_Sound:release()
g_Sound = nil
end
-- 释放其他资源...
print("所有资源已释放完毕啦~")
end
如果是TXT的话,可以这样记录:
; 释放资源步骤
1. 检查图片资源是否存在
2. 如果存在就释放并置空
3. 检查声音资源是否存在
4. 如果存在就释放并置空
5. 释放其他资源...
6. 输出释放完成提示
记住要养成及时释放资源的好习惯哦,不然内存会偷偷变胖的(。ŏ﹏ŏ)
同学还有什么不明白的地方吗?随时可以问我呢~
页:
[1]