Cocos2d-x v3.0ではC++11が使えてそのやりかたとか
コンテナとか
for(auto node : getChildren()) { log("Node tag = %d", node->getTag() ); }
auto nodeに順番に要素入れながらループ回す、foreachみたいなことできる。
ちなみに
getChildren()の戻り値はcocos2d::Vector
auto enemies = _enemyLayer->getChildren(); // Vector enemies.reverse(); for (auto target : enemies) { enemy = (Enemy*)target; rectArr.push_back(enemy->getBoundingBox()); }
cocos2d::Vectorはstd::vectorと違ってarr[2];とかできない、arr.at(2);とかする。
ラムダ式とかいうやつ
auto opa = FadeOut::create(0.6); auto sca = ScaleTo::create(0.6, 2.0, 2.0); auto func = CallFunc::create([this](){ // なんでこうやって書くか知らない this->removeFromParentAndCleanup(true); }); auto spa = Spawn::create(opa, sca, NULL); auto seq = Sequence::create(spa, func, NULL); runAction(seq);
アクションつくるとき便利、これしたあと消す、とかできる。ちなみにこれはcocos2d::Spriteが広がりながら消えるやつ。