游戏开发基础part5--剪切区域
游戏开发基础part5--剪切区域
剪切区域在游戏开发中也是画布很常用的一个函数,是游戏开发需要重点掌握的知识点。
自己在学习第5章的时候,就体会到剪切的用处。剪切区域呢,也称可视区域,是由画布进行设置的;它指的是在画布上设置一块区域,当画布一旦设置了可视区域,那么除此区域以外,绘制的任何内容都将看不到;这是很有趣的事情,哈哈,哪里有趣,白痴。
新建项目:ClipCanvasProject,还是在SurfaceView游戏框架下进行开发。
剪切区域内容不多,就是一个函数:
clipRect(int left, int top, int right, int bottom)
作用:为画布设置矩形可视区域,(当然还有绘制圆形的函数)
第一、二个参数:可视区域的左上角坐标
第三、四个参数:可视区域的右下角坐标
因为设置可视区域是对整个画布进行操作,所以应该在绘制之前save一下,绘制完后再restore一下。
就是这样:
canvas,save();
canvas.clipRect(0,0,20,20);
canvas.drawRect(0,0,this.getWidth(),this.getHeight(),paint);
canvas.restore();
当然设置可视区域不仅仅只有设置矩形可视区域,画布还提供了其他两种设置可视区域的方法:
1.利用Path来设置可视区域的形状。
clipPath(Path path)
作用:为画布设置可视区域
参数:Path实例
2.利用Region来对画布设置可视区域。
clipRegion(Region region)
作用:为画布设置可视区域
参数:Region实例
Region这个类:表示区域的集合
常用函数:
op(Rect rect,Op op)
作用:设置区域块
第一个参数:Rect实例
第二个参数:Region.Op静态值,表示区域块的显示方式。
显示方式:
Region.Op.UNION:区域全部显示
Region.Op.INTERSECT:区域的交集显示;
Region.Op.XOR:不显示交集区域
实例代码:
==>MySurfaceView.java