-- 创建主窗口
local parent = GUI:Win_Create("GMMain", 0, 0, 0, 0, false, false, true, false, false, false, 1)
-- 粒子特效容器
local currentParticle = nil
-- 获取屏幕尺寸
local screenWidth = 1024
local screenHeight = 768
-- 所有可用的内置粒子特效类型
local effects = {
{name = "火焰", create = function()
local p = cc.ParticleFire:create()
p:setStartColor(cc.c4f(1,0.5,0,1))
p:setEndColor(cc.c4f(1,0,0,0))
p:setPosition(screenWidth/2, screenHeight/2)
p:setScale(3) -- 放大火焰效果
return p
end},
{name = "雪花", create = function()
local p = cc.ParticleSnow:create()
p:setStartColor(cc.c4f(0.9,0.9,1,1))
p:setLife(30)
p:setPosition(screenWidth/2, screenHeight + 100) -- 从屏幕上方开始
p:setScale(5) -- 放大雪花范围
return p
end},
{name = "烟花", create = function()
local p = cc.ParticleFireworks:create()
p:setSpeed(111)
p:setStartColor(cc.c4f(0.9,0.9,1,1))
p:setPosition(screenWidth/2, 1000) -- 从屏幕下方发射
p:setScale(5)
return p
end},
{name = "爆炸", create = function()
local p = cc.ParticleExplosion:create()
p:setLife(0.5)
p:setTotalParticles(1111) -- 增加粒子数量
p:setPosition(screenWidth/2, screenHeight/2)
p:setScale(1) -- 放大爆炸范围
return p
end},
{name = "银河", create = function()
local p = cc.ParticleGalaxy:create()
p:setStartSize(10) -- 增大粒子
p:setPosition(screenWidth/2, screenHeight/2)
p:setScale(10)
return p
end},
{name = "烟雾", create = function()
local p = cc.ParticleSmoke:create()
p:setLife(11)
p:setPosition(screenWidth/2, 200) -- 从底部升起
p:setScale(1)
return p
end},
{name = "魔法", create = function()
local p = cc.ParticleSun:create()
p:setStartSize(10) -- 增大太阳
p:setPosition(screenWidth/2, screenHeight/2)
p:setScale(1)
return p
end},
{name = "花瓣", create = function()
local p = cc.ParticleFlower:create()
p:setSpeed(50)
p:setPosition(screenWidth/2, screenHeight - 400) -- 从上方飘落
p:setScale(4)
return p
end},
{name = "螺旋", create = function()
local p = cc.ParticleSpiral:create()
p:setLife(100)
p:setPosition(screenWidth/2, screenHeight/2)
p:setScale(3)
return p
end},
{name = "雨", create = function()
local p = cc.ParticleRain:create()
p:setLife(1.5)
p:setPosition(screenWidth/2, screenHeight + 100) -- 从上方落下
p:setScale(5) -- 全屏雨效果
return p
end}
}
-- 创建控制按钮(左侧单列排列)
local btnWidth = 20
for i, effect in ipairs(effects) do
local btn = GUI:Button_Create(parent,
"Btn_"..i,
20, -- 左侧固定位置
0+i*20, -- 垂直排列
"res/public/1900000612.png" -- 按钮背景
)
GUI:setPosition(btn, btnWidth, 150+i*40)
GUI:Button_setTitleText(btn, effect.name)
GUI:Button_setTitleFontSize(btn, 16)
-- 按钮点击事件
GUI:addOnClickEvent(btn, function()
-- 移除旧特效
if currentParticle then
currentParticle:removeFromParent()
end
-- 创建新特效
currentParticle = effect.create()
if currentParticle then
parent:addChild(currentParticle)
SL:print("已激活特效: "..effect.name)
end
end)
end
-- 默认显示第一个特效
if #effects > 0 then
currentParticle = effects[1].create()
parent:addChild(currentParticle)
end