cocos2dx-js背景图变灰

全国哀悼的时候,需要游戏背景变灰.如果图片重新输出太多,太费时,不现实,后来利用了button的自带置灰功能.

主要克服2个问题.1是层级问题,2是监听图片变化.这里只处理了位置属性.如其他缩放等属性有需要的自行同步.

var setImageGray = function (node) {
    var _grayImg = node.getChildByName("_grayImg")
    if(_grayImg){
        _grayImg.loadTextures(node.getRenderFile().file,node.getRenderFile().file,"");
        _grayImg._lastImgPath = node.getRenderFile().file;
    }else{
        var button = new ccui.Button(node.getRenderFile().file,node.getRenderFile().file);
        button.setTouchEnabled(false);
        button.setBright(false);
        button.setName("_grayImg");
        button.scheduleUpdate(); 
        button._lastImgPath = node.getRenderFile().file;
        button.update = function () {
            if(button.getParent().getRenderFile().file != button._lastImgPath){
                setImageGray(button.getParent());
            }
        }

        button.setPosition(node.width/2,node.height/2)
        node.addChild(button,-1);
        node.getVirtualRenderer().setVisible(false);
    }
    
};

 

使用的时候setImageGray(imageView)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值