Пример #1
0
Sequence* GameObjectFactory::createVirusPatternSpawnActionWithPatternTypeAndPosition(BattleField *parent, CreateObjectType virusType, VirusSpawnPatternType patternType, Vec2 rootPos)
{
    auto data = JSONPacker::unpackVirusSpawnPattern(json, patternType);
    Vector<cocos2d::FiniteTimeAction *> arrayOfActions;
    for (auto pos : data.positions) {
        auto callfunc = CallFunc::create([&, rootPos, pos, parent, virusType]() {
            Virus* virus = static_cast<Virus*>(this->createGameObjectByType(virusType));
            virus->setPosition(rootPos + pos);
            virus->setDelegate(parent);
            parent->addGameObject(virus);
            
            virus->playSpawnAnimation();
        });
        
        arrayOfActions.pushBack(callfunc);
        arrayOfActions.pushBack(DelayTime::create(0.1f));
    }
    return Sequence::create(arrayOfActions);
}