精灵是cocos2d-x游戏开发中不可或缺的元素,创建方法不尽相同,本文将介绍五种较为实用的方法,让开发者可以简便迅速的完成精灵的“塑造”。
上面那句话也可以根据需要这样来写:
方法一:直接创建精灵
适合于要显示的是这张图片的全部区域,
1
|
CCSprite
* sprite = CCSprite::create( "Icon.png" ); |
1
2
3
4
5
|
CCString*
fileName = CCString::createWithFormat( "Icon_%d.jpg" ,
flag); CCSprite*
sprite = CCSprite::create(fileName->getCString()); sprite->setPosition(ccp(100,
100)); this ->addChild(sprite); |
方法二:参数 图片名称 矩形区域
适合于需要显示此图片的部分区域
1
2
3
|
CCSprite
* sprite = CCSprite::create( "Icon.png" ,CCRectMake(0,
0, 30, 30)); sprite->setPosition(ccp(100,
100)); this ->addChild(sprite); |
方法三: 利用帧缓存中的一帧的名称声称一个对象
适合于plist打包好的文件
1
2
3
4
|
CCSpriteFrameCache::sharedSpriteFrameCache()->addSpriteFramesWithFile( "test_icon.plist" ); CCSprite
* sprite = CCSprite::createWithSpriteFrameName( "Icon.png" ); sprite->setPosition(ccp(100,
100)); this ->addChild(sprite); |
方法四: 利用另外一帧生成一个精灵对象
适合于做帧动画使用
1
2
3
4
|
CCSpriteFrame
* frame = CCSpriteFrame::create( "Icon.png" ,
CCRectMake(0, 0, 40, 30)); CCSprite
* sprite = CCSprite::createWithSpriteFrame(frame); sprite->setPosition(ccp(310,
150)); addChild(sprite); |
方法五:利用纹理
适合于需要频繁使用的图片
1
2
3
4
5
6
|
CCSpriteBatchNode*
spriteTexture = CCSpriteBatchNode::create( "iocn.png" ); spriteTexture->setPosition(CCPointZero); addChild(spriteTexture); CCSprite*
sprite = CCSprite::createWithTexture(spriteTexture->getTexture()); sprite->setPosition(ccp(visiblesize.width/2,
100)); spriteTexture->addChild(sprite,
2); |