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));