Billboard的使用及加動作Animation,billboardanimation

來源:互聯網
上載者:User

Billboard的使用及加動作Animation,billboardanimation


BillBoard的使用 
 auto root = Sprite3D::create();
 root ->setNormalizedPosition(Vec2(.5,.25));
 addChild(root);
BillBoard / Spawn / Sequence 的使用
 auto mode1 = Sprite3D::create("Sprite3DTest/orc.c3b");
 mode1->setScale(5);
 mode1->setRotation3D(Vec3(0,180,0));
 root->addChild(mode1);

 auto bill = BillBoard::create();//BillBoard 廣告牌
 bill->setPosition(0,120);
 root->addChild(bill);

 auto sp = Sprite::create("Images/SpookyPeas.png");
 sp->setScale(2);
 bill->addChild(sp);

 auto lb1 = Label::create();
 lb1->setPosition(0,30);
 lb1->setString("+1000000000000000000000000000");
 bill->addChild(lb1);

 auto r = RotateBy::create(10,Vec3(0,360,0));
 auto rp = RepeatForever::create(r);
 root->runAction(rp);

 auto jump = JumpBy::create(1,Vec2(0,0),30,1);
 auto scale = ScaleBy::create(2,2,2,0.1);
 auto seq = Sequence::create(jump,scale,nullptr);

 auto rot = RotateBy::create(2,Vec3(-90,0,0));
 auto act = Spawn::create(seq,rot ,NULL);//Spawn 同時動作

 auto scale2 = scale->reverse();
 auto rot2 = rot->reverse();
 auto act2 = Spawn::create(scale2,rot2,NULL);

 auto seq2 = Sequence::create(act,act2,NULL);//Sequence 順序動作
 auto repeat =RepeatForever::create(seq2);

 mode1->runAction(repeat);
 


Billboard 上加動作Animation
     void HelloWorld::addNewAniBillBoardWithCoords(Vec3 p)
 {
  
          for (int i = 0; i < 10; ++i)
{
   
                auto billboardAni = BillBoard::create("Images/grossini.png");
   
                billboardAni->setScale(0.5f);
   
                billboardAni->setPosition3D(Vec3(p.x,p.y,-150.0f +30 *i));
   
                _layerBillBoard->addChild(billboardAni);

   
                auto animation = Animation::create();
   
                for (int i = 1; i < 15; i++)
{
    
                    char szName1[100] = {0};
    
                    sprintf(szName1,"Images/grossini_dance_%02d.png",i);
    
                    animation->addSpriteFrameWithFile(szName1);
   
                }
   
                animation->setDelayPerUnit(2.8f / 14.0f);//設定兩幀之間的時間間隔
   
                animation->setRestoreOriginalFrame(true);//true: 動畫播放結束後,回到初始幀 false:動畫播放結束後,顯示最後一幀

         auto action = Animate::create(animation);
   
                billboardAni->runAction(RepeatForever::create(action));
   
                billboardAni->setOpacity(CCRANDOM_0_1() * 128 + 128);
//設定透明度  
                _billboards.push_back(billboardAni);


  
           }
 
       }

 
 
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.