lua-按钮或者是字体拉光效果_skybeauty_新浪博客

--本API主要是显示拉光效果

function GameScene:ShowClip(conf)
-- body
local target = conf.target                                                      --要扫描的对象
local targetFilePath = conf.targetFilePath or ""                                --要扫描对象纹理图片
local lightPicPath = conf.lightPicPath or "upgrade_icon_white.png"              --扫描图片路径
local isLoop = conf.isLoop ~= nil and conf.isLoop or false                      --是否循环扫描
local speed = conf.speed or 150                                                 --扫描速度
local size = target:getContentSize()
local m_clip = cc.LayerColor:create(cc.c4f(0,0,0,0),size.width,size.height)     --可控制扫描的暗影
local m_clipping = cc.ClippingNode:create()                                     --镂空node

-- 设置一些属性
m_clipping:setInverted(false)
m_clipping:setAlphaThreshold(0)
m_clipping:addChild(m_clip)

--创建扫描对象的像素副本
local m_sp = cc.Sprite:create(targetFilePath, cc.rect(0, 0, size.width, size.height))
m_sp:setAnchorPoint(cc.p(0,0))
m_clipping:setStencil(m_sp)

--创建扫描拉光
local m_light = cc.Sprite:create(lightPicPath)

--设置扫光图片的相关属性(根据需求设置)
m_light:setScaleX(0.4)
-- m_light:setRotation(-50)
m_light:setOpacity(150)
m_light:setPositionX(-size.width)
m_clipping:addChild(m_light)

local time = (size.width * 2) / speed
local actArray = {}
local pMoveBy = cc.MoveBy:create(time, cc.p(size.width * 2, 0))
local pHide = cc.Hide:create()
local callFunc = cc.CallFunc:create(function (pSender)
pSender:setPositionX(-size.width)
end)
local delayTime = cc.DelayTime:create(0.25)
local pHideReverse = pHide:reverse()
table.insert(actArray,pMoveBy)
table.insert(actArray,pHide)
table.insert(actArray,callFunc)
table.insert(actArray,delayTime)
table.insert(actArray,pHideReverse)

local pSequence = cc.Sequence:create(actArray)
if isLoop then
m_light:runAction(cc.RepeatForever:create(pSequence))
else
m_light:runAction(pSequence)
m_clipping:runAction(cc.Sequence:create(cc.DelayTime:create(time), cc.RemoveSelf:create()))
end
target:addChild(m_clipping)
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值