cocos創建Sprite

1、創建方法一

Sprite *sp = Sprite::create();

2、方法二

Texture2D *textture = TextureCache::getInstance()->addImage("kaishi.png");
Sprite *sp = Sprite::createWithTexture(textture);

這裏get instance()被提示爲過時函數,可能是編譯器抽風

3、方法三

SpriteFrameCache::getInstance()->addSpriteFramesWithFile("dqqIMG.plist");
auto spriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName("slingshot1.png");
slingshotSprite = Sprite::createWithSpriteFrame(spriteFrame);

4、中途修改sprite的圖片
initWithFile
initWithSpriteFrameName
setTexture
注意:被修改的精靈儘可能是一個本身有圖片的精靈。否則出錯的概率很大,尤其使用box2d引擎的時候,引擎將失效。一個很懶的解決辦法是,每次創建精靈都默認設置一張圖片。方法有點笨,但是簡單使用。

4、精靈播放幀動畫
說到幀動畫,不得不提一下骨骼動畫,感覺骨骼動畫真的很酷,但是目前我的水平來講,也只能老老實實用幀動畫咯。

cocos2d::Vector<cocos2d::SpriteFrame*>slingshotFrames;
auto spriteFrame = SpriteFrameCache::getInstance()->getSpriteFrameByName("slingshot0.png"); slingshotFrames.pushBack(spriteFrame);
auto spriteFrame1 = SpriteFrameCache::getInstance()->getSpriteFrameByName("slingshot1.png");  
slingshotFrames.pushBack(spriteFrame1);
auto spriteFrame2 = SpriteFrameCache::getInstance()->getSpriteFrameByName("slingshot2.png");  
slingshotFrames.pushBack(spriteFrame2);
auto spriteFrame3 = SpriteFrameCache::getInstance()->getSpriteFrameByName("slingshot1.png");  
slingshotFrames.pushBack(spriteFrame3)
Animation *anim = Animation::createWithSpriteFrames(slingshotFrames,1.0f/20.0f);
slingshotSprite->runAction(Animate::create(anim));
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章