[Starling] RenderTexture - 屏幕截图、角色残影功能的实现基础

来源:互联网 发布:无法打开数据库msdb 编辑:程序博客网 时间:2024/06/15 18:40

RenderTexture ,API上的解释是一个能在其上绘制任何显示对象的动态纹理。
它有个draw方法,可以直接在纹理上渲染一个对象。

然而,API上的说明太简单,以至于我研究了好久才真正弄明白这个draw怎么用。

public class BiasTexture{public var m_iBiasX:int;public var m_iBiasY:int;public var m_Texture:Texturepublic function BiasTexture(){}}


private static var m_stHelpRect:Rectangle = new Rectangle;private static var m_stHelpMatrix:Matrix = new Matrix;/** * 获取对象Texture。 disp是拷贝对象,scale是缩放倍数  */public static function copyToTexure(disp:DisplayObject, scale:Number=1.0, canves:RenderTexture=null,result:BiasTexture=null):BiasTexture{disp.getBounds(disp, m_stHelpRect);m_stHelpMatrix.identity();m_stHelpMatrix.translate(-m_stHelpRect.x, -m_stHelpRect.y);m_stHelpMatrix.scale(scale,scale);if(result == null){result = new BiasTexture;}result.m_Texture = null;if(canves == null){canves = new RenderTexture(m_stHelpRect.width*scale,m_stHelpRect.height*scale,false);result.m_Texture = canves;}canves.draw(disp,m_stHelpMatrix);result.m_iBiasX = m_stHelpRect.x*scale;result.m_iBiasY = m_stHelpRect.y*scale;if(result.m_Texture == null){m_stHelpRect.y = 0;m_stHelpRect.x = 0;result.m_Texture = Texture.fromTexture(canves,m_stHelpRect);}return result;}


得到的纹理是从0,0画到width,height的。。BiasX和BiasY是锚点的偏移坐标

0 0
原创粉丝点击