在cocos2d-x中,精灵可以说是一个最重要的组成元素,它代表游戏中一个最小的可见单位。同时也是CCNode一个最为灵活的子类,因为它可以通过装载一个平面纹理,从而具有丰富的表现力。
在进一步说精灵之前,有限需要理解一下纹理的概念。简单直观地理解,其实纹理就是我们通常在游戏中看到的图片,而这张图片通过精灵这个容器显示出来。专业一点来说,纹理是openGL中绘制到物体表面上的图案。在这里只简单介绍一下,不深入了解。
精灵的创建方法比较灵活,大致可以分为以下3种方法:
1、从文件中直接创建精灵。
这种方法很简单,只要知道文件所在的路径和名称,直接调用CCSprite的工厂方法即可,如: CCSprite::spriteWithFile("文件完整名称"); 其中文件名必须是完整路径,用cocos2d-x生成的项目中Resources目录为根目录。
CCSprite * sprite= CCSprite::create(pszFilename);
这样加载方式精灵会把图片的整个区域显示出来。另外也可以增加图片的显示区域这一参数。如下所示:
CCSprite * sprite= CCSprite::create(pszFilename,CCRectMake(0, 0, 30, 30));
注意这里的rect使用的是纹理坐标系,以左上角为原点,原点向右为x的正方向,原点向下为y的正方向。上面的代码表示显示出以图片左上角为原点的30*30像素范围的图片区域。
对于经常被用到或者需要频繁加载移除的一些资源,如果每次都要从文件中加载,程序的的效率会变低,因此我们可以先把图片资源读到缓存中,再从缓存中加载。
2
、通过纹理去加载。
CCTexture2D*pTexture = CCTextureCache::sharedTextur