最近项目(H5手游项目,使用LayaAir引擎)中有一个技能box滚动刷新的功能需求。
H5游戏特别是面向手机浏览器更应该追求内存优化、非必要显示对象的删减。于是有了不使用遮罩、通过代码仅绘制技能box可见部分的构思。
我的设计是这样的:
在游戏主循环里通过"一定的速率"改变技能box的可见部分(同一时刻可见的box小于等于2)的绘制,实现滚动效果。
具体实现:
1.通过对图片的UV进行变换实现可见部分的动态绘制。
//绘制上方盒子
private static function _drawImgT(ctx:WebGLContext2D, tex:Texture, x:Number, y:Number, srcHeight:Number, decHeight:Number, h:Number):void
{
tex.source;
var preHeight:Number = tex.uv[7] - tex.uv[1];