creator 2.3 RenderTexture 的使用

cc.Class({
    extends: cc.Component,

    properties: {
        camera: cc.Camera,
        _canvas: null
    },

    init () {
        let texture = new cc.RenderTexture();
        texture.initWithSize(cc.visibleRect.width, cc.visibleRect.height, cc.gfx.RB_FMT_S8);
        this.camera.targetTexture = texture;
        this.texture = texture;
    },
    dostart () {
        if(!this.__init){
            this.__init = true;
            this.init();
        }
        this.camera.render();
        return this.texture;
    },

// 下面这一段放进要使用这个纹理的脚本里去
    // update(dt){
    //     let tex = this.seekChild('test').getComponent('textureRenderUtils').dostart();
    //     let sp = this.seekChild('testspr').getComponent(cc.Sprite);
    //     sp.spriteFrame.setTexture(tex);
	//     这里测试必须使用new SpriteFrame 否则纹理不会更新
    //     let spriteFrame = new cc.SpriteFrame();
    //     spriteFrame.setTexture(tex);
    //     sp.spriteFrame = spriteFrame;
    // }
});

摄像机要注意跟被拍摄物体同一个Group,
creator 2.3 RenderTexture 的使用
CullingMask选择当前要渲染的物体的Group
clearFlags必须勾选color,否则重影,即上一帧的纹理跟当前帧的纹理叠加出现,BackgroundColor.a设置成0就可以渲染出透明背景

上一篇:Qt Creator使用Perforce


下一篇:Cocos Creator 新资源管理系统剖析