cocos 2 dxのVector

5053 ワード

まずVectorについて話しましょう.
C++のvector容器をどう使うかというと、私が言いすぎると菜鳥の身分が一気に暴露されるに違いない.だから、ここではあまり説明しないで、大神にも迂回してください.
だから、やはりVectorの使用問題に戻りましょう.どう使いますか.VectorがArrayの代わりになっている以上、ArrayとVectorを比較しましょう.
次にSpriteスプライトオブジェクトを作成するコンテナを例に紹介しましょう
1、作成
2つのスプライトを作成します.
 
view source print ? 1. auto sp1 = Sprite::create( "CloseNormal.png" ); 2. sp1->setPosition(Point( 100 , 100 )); 3. this ->addChild(sp1, 1 ); 4.
  5. auto sp2 = Sprite::create( "CloseSelected.png" ); 6. sp2->setPosition(Point( 100 , 200 )); 7. this ->addChild(sp2, 1 );
コンテナの作成
 
 
view source print ? 1. Alpha: 2. auto sp_array = Array::create(); 3. beta: 4. Vector<Sprite*> sp_vec;
2、作成した精霊を容器に加える
 
 
view source print ? 1. Alpha: 2. sp_array->addObject(sp1); 3. sp_array->addObject(sp2); 4.
  5.
  6. beta: 7. sp_vec.pushBack(sp1); // 8. sp_vec.pushBack(sp2);
3、容器の大きさを得る
 
 
view source print ? 1. Alpha: 2. int   count = sp_array->count(); 3. beta: 4. int   count = sp_vec.size();
4、容器の中の精霊を獲得し、これらの要素を統一的に動作させる
 
 
view source print ? 01. Alpha: 02. for ( int   i= 0 ;i<sp_array->count();i++) 03. { 04. auto sp = (Sprite*)sp_array->getObjectAtIndex(i); 05. sp->runAction(MoveTo::create( 0 .2f,Point( 100 , 100 ))); 06. } 07. beta: 08. for ( int   i= 0 ;i<sp_vec.size();i++) 09. { 10. auto sp = sp_vec.at(i); 11. sp->runAction(MoveTo::create( 0 .2f,Point( 100 , 100 ))); 12. }
5、容器の精霊を削除する
 
 
view source print ? 01. // : 02. Alpha: 03. sp_array->removeLastObject(); 04. beta: 05. sp_vec.popBack(); 06.
  07. // : 08. Alpha: 09. sp_array->removeObject(sp1); 10. beta: 11. sp_vec.eraseObject(sp1); 12. // : 13. Alpha: 14. sp_array->removeAllObject(); 15. beta: 16. sp_vec.clear();
6、他の「つまらない」は、実はVectorもそうです.うん、そう...最後に他の使い方を補足します.
 
 
view source print ? 01. //a : 02. sp_vec.pushBack(sp1); 03. sp_vec.pushBack(sp2); 04. // ,sp1 ,sp2 , sp3 : 05. sp_vec.insert( 0 ,sp3); //ok 06.
  07. //b : 08. //1、 sp3 , : 09. sp_vec.contains(sp3); // , true, false; 10. //2、 sp3 , : 11. int   pos_int = sp_vec.find(sp3); 12. // sp3 , , 45214 , , : 13. int   pos_int = sp_vec.find(sp3) - sp_vec.begin(); //ok
うん、あまり時間がないから、ここまで書いておきましょう.昨夜betaのVectorについて知りに行きましたが、何か書き間違えたところや不適切なところがあったら教えてください...
 
オリジナルアドレス:http://blog.csdn.net/start530?viewmode=contents