cocos lua 图片置灰

这篇博客介绍了如何在Cocos2d-x Lua中通过自定义方法`setGray`来实现图片的灰度效果。通过设置图片的GLProgramState,实现了将颜色渲染为灰度值。此外,还提供了一个`ItemLogic`类的例子,展示了如何批量应用图片灰度效果到视图的子节点上。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

local image = ccui.ImageView
function image:setGray(value)
    if self.isGray and  not value then
        local node = self:getVirtualRenderer():getSprite()
        if node then
            node:setGLProgramState(cc.GLProgramState:getOrCreateWithGLProgram(cc.GLProgramCache:getInstance():getGLProgram("ShaderPositionTextureColor_noMVP")))
        end
        self.isGray = false
    elseif value and not self.isGray then
        local node = self:getVirtualRenderer():getSprite()
        if node then
            darkNode(node)
            self.isGray = true
        end
    end
end

----------------  栗子
function ItemLogic:setGray( isDark)
   for i,v in ipairs(self.view:getChildren()) do
       if v.setGray then
            v:setGray(isDark)
        end
   end
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值