【cocos2d-js】创建单一颜色的精灵

标题 ##【cocos2d-js】2.创建单一颜色精灵

一般的精灵都是需要伴随一张图片的,单一颜色的布局的话只能用cc.LayerColor,显然有些场合不合适,比如ProccessTimer的参数必须是个精灵,所以有时候单一颜色精灵还是有些用的。由于网页上和手机的不同,这里我写了两个方法,其中网页的方法是借用外国人的,然而他给我的代码是cocos2d-x的,所以也算自创啦~\(≧▽≦)/~。

网页端:

/**
     * 仅WEB可用
     * @param size
     * @returns {___anonymous695_700}
     */
    blankSpriteWithSize : function(size) {
        var sprite = new cc.Sprite();
        var buffer = new Uint8Array(4);
        for (var i=0;i<4;i++) {
            buffer[i] = 255;
        }
        var tex = new cc.Texture2D();
        tex.initWithData(buffer, cc.Texture2D.PIXEL_FORMAT_RGBA8888, 1, 1, size);
        sprite.texture = tex;
        sprite.setTextureRect(cc.rect(0, 0, size.width, size.height));
        return sprite;
    }

代码很容易理解,就是用颜色画个纹理,再贴给精灵。不同颜色只要修改buffer的值就行了。

手机端:

/**
 * 创建单一颜色的精灵
 * @param size {cc.Size} 尺寸
 * @param color {cc.Color} 颜色
 * @returns {cc.Sprite}
 */
colorSprite = function(size, color) {
    var render = new cc.RenderTexture(size.width, size.height);
    render.beginWithClear(color.r, color.g, color.b, color.a);
    render.visit();
    render.end();
    return new cc.Sprite(render.getSprite().texture);
}

原理就是用RenderTexture采取某种颜色来清理,清理完后返回。代码看起来很简单,重点是思路。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值