LoginSignup
1
1

More than 5 years have passed since last update.

cocos2d-xでchildrenから複数の要素を削除する

Last updated at Posted at 2015-01-10

sawasaka さんが 有用なコメントを書いて下さっているので、よかったらコメント欄も読んでみてください。

逆順で回すのがポイントです。

auto children = getChildren();
// 逆順で回さないとindexがズレてしまい消したい要素を消せない
reverse(children.begin(), children.end());

for(auto child: children){
    auto name = child->getName();

    // _dirtyNamesには削除したい要素につけているnameが入っていることを想定
    auto keys = _dirtyNames.keys();
    // 以下のコードは keys.contains?(name) 的な意味
    if( std::find(keys.begin(), keys.end(), name) == keys.end() ){
        child->removeFromParent();
    }
}

書いてから思ったんだけど、逆順で回さないと配列が壊れるって話前にもobjcでハマったことあるな・・

1
1
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1