在Cocos2dx开发的游戏中,玩家能够看到的内容基本都是通过渲染精灵出来的,背景、UI、人物、道具、敌人等全部都是精灵。因此,对于精灵类的掌握是对游戏开发十分重要的。
精灵类继承了节点类Node和材质类TextureProtocol,因此具有这两个类的所有特性,此外还扩展了一些属于自己的特性。
精灵类Sprite常用方法:
static Sprite* create() 与场景类 布景类 节点类相同的工厂模式创建实例的方法。
static Sprite* create(const std::string& filename) 通过图片文件创建精灵。
static Sprite* create(const std::string& filename,const Rect& rect) 创建一个精灵对象,参数是图片路径和精灵所占大小矩形。
除了Node类自带的图形方法外,Sprite自己还扩展出:
void setFlippedX(bool flippedX) 水平翻转精灵,true时翻转。
void setFlippedY(bool flippedY) 垂直翻转精灵,true时翻转。
bool isFlippedX(void) 精灵是否水平翻转。
bool isFlippedY(void) 精灵是否垂直翻转。
如何使用精灵类:
auto能自动匹配对应的类
1、使用静态创建方法创建精灵实例 如:auto(匹配后是Sprite*) sprite = Sprite::create("picture.png"); //用图片文件picture.png创建一个精灵类实例。
2、设置精灵位置 如:sprite->setPosition(Point(300,300)); //把精灵位置设置在点(300,300)坐标上。
3、设置精灵锚点 如:sprite->setAnchorPoint(Point(0,0));//把精灵锚点设为(0,0)。
4、把精灵对象添加到节点对象:
把精灵添加到布景对象 如 layer->addChild(sprite,0); //把精灵添加到布景中,sprite在layer的本地ZOder为0。
把精灵添加到其他精灵对象中 如 otherSprite->addChild(sprite,0); //把精灵添加到其他精灵中,sprite在otherSprite中的本地ZOder为0。
关于大量精灵和内存的问题在其他篇章里解释。