sprite的使用方法

1、創建方法一
<span style="font-family: Arial, Helvetica, sans-serif;"></span><pre name="code" class="cpp">Sprite *sp = Sprite::create("diyiming.png");

<span style="font-family: Arial, Helvetica, sans-serif;">2、方法二</span>

<pre name="code" class="cpp">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));



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章