天涯明月刀ol|天涯明月刀迅雷下载
  1. 當前所在位置:
  2. 首頁
  3. 公告

基本的捕魚游戲設計思路——序列幀動畫

2018-12-18 admin
  今天,我帶領大家學習一下Cocos2d-x2.0的序列幀動畫。在Cocos2d-x中,提供了相應的一些類和方法,可以方便的生成序列幀動畫,這樣我們就可以制做各種人物動作以及動畫效果。這就是魚在水里游動的基礎動畫。
 
  序列幀動畫主要有幾個類:
 
     CCSpriteFrame:精靈幀信息,序列幀動畫是依靠多個精靈幀信息來顯示相應的紋理圖像,一個精靈幀信息包包含了所使用的紋理,對應紋理塊的位置以及紋理塊是否經過旋轉和偏移,這些信息可以取得對應紋理中正確的紋理塊區域做為精靈幀顯示的圖像。
 
     CCAnimationFrame:序列幀動畫單幀信息,它存儲了對應的精靈幀信息。
 
     CCAnimation:序列幀動畫信息,它存儲了所有的單幀信息,可以對單幀信息進行管理。
 
     CCAnimate:序列幀動畫處理類,它是真正完成動畫表演的類。
 
  voidGameScene::fishAnim(){
 
  <spanstyle="white-space:pre"> </span>SpriteFrameCache*frameCache=SpriteFrameCache::getInstance();
 
   frameCache->addSpriteFramesWithFile("fish.plist","fish.png");//加載Plist緩存
 
   SizevisibleSize=Director::getInstance()->getVisibleSize();
 
   autofish=Sprite::createWithSpriteFrameName("fish1.png");//創建一個魚的首個幀
 
   fishVec.pushBack(fish);//放進數組
 
   fish->setPosition(Vec2(dd,dt));//設置坐標
 
   this->addChild(fish,5);//添加到場景
 
   Animation*animation=Animation::create();//創建序列幀動畫
 
   animation->setDelayPerUnit(0.01f);//0.01s播放完序列幀動畫
 
   animation->addSpriteFrame(frameCache1->getSpriteFrameByName("fish1.png"));
 
   animation->addSpriteFrame(frameCache1->getSpriteFrameByName("fish2.png"));
 
   animation->addSpriteFrame(frameCache1->getSpriteFrameByName("fish3.png"));//3個序列幀動畫順序執行
 
   Animate*animate=Animate::create(animation);//幀動畫處理
 
   fish->runAction(Sequence::create(animate,CallFunc::create(CC_CALLBACK_0(GameScene::remove,this)),nullptr));
 
  }
 
  最后那個remove回調函數是用于刪除動畫,優化游戲環境。
 
  ---------------------
 
捕魚駕到 天涯明月刀ol