灵活使用精灵可视区域(TextureRect)与锚点(anchorPoint)
?
?? ? 今天Himi单用一篇博文来给童鞋们介绍精灵相关的两个常用的细节知识点;
? ? ??首先来介绍第一个知识点:精灵可视区域;
? ? ? 不管在哪个移动平台上进行开发游戏都会接触使用到可视区域,比如Kjava(J2me)平台的setClip方法,Android的clipRect方法等等,那么在iOS上也一样存在,这里我们介绍cocos2d引擎中的可视区域得函数是setTextureRect;
? ? ? 可能没有接触过游戏得童鞋不明白其概念,那么Himi就简单概述下:
? ? ? 所谓可视区域就是在一个完整的表面上对其设置一定大小的区域,让其只显示设置的区域的面,其他部分隐藏不显示出来;最常用的是将一张图片设置一个可视区域,只让这张图展示设置的区域;
? ? ? 那么这里在啰嗦几句,在cocos2d中精灵CCSprite的可视区域一般可以通过两种方式来设置:
1.在创建精灵的时候进行设置;2.在创建后进行设置;举例如下:
? ? ? ? 新建一个cocos2d项目,然后在HelloWorldLayer.m中init方法中创建一个精灵,代码如下:
?
?
? ? ?下面介绍第二个知识点:精灵锚点(anchorPoint);
? ? ? ??渲染锚点的作用就是在渲染图片的时候确定其渲染的方式,一般常用的锚点有以下几种:
? ? ? 图片左上角、图片右上角、图片中心点、图片左下角、图片右下角等等
? ? ??首先童鞋们需要知道一点,在cocos2d引擎中在layer中添加渲染精灵贴图的时候默认的锚点是其中心点;
? ? ? 那么由于cocos2d中layer的原点(0,0)点是屏幕的左下角,所以如果默认创建一个精灵添加到layer中的话,是精灵的中心点放置在layer的原点上,即精灵图片显示在屏幕中只是精灵的宽一半高一半,如下图:

?
?
? ? ? ? ? ? ? ? 对应代码如下:
? ? ? ? ??对应代码如下:
//---设置精灵锚点为左下角 ?
CCSprite * spriteNew =[CCSprite spriteWithFile:@"icon.png"]; ?