GameObject* GameObjectFactory::Create(std::string typeID)
{
	std::map<std::string, BaseCreator*>::iterator it =
		m_creators.find(typeID);
	if (it == m_creators.end())
	{
		std::cout << "could not find type: " << typeID << "\n";
		return NULL;
	}
	BaseCreator* pCreator = (*it).second;
	return pCreator->CreateGameObject();
}
예제 #2
0
GameObject* GameObjectFactory::create(std::string typeID)
{
	std::map<std::string, BaseCreator*>::iterator it =
		objectCreators.find(typeID);

	if (it == objectCreators.end())
	{
		printf("could not find type: %s\n", typeID.c_str());
		return NULL;
	}
	BaseCreator* pCreator = (*it).second;
	return pCreator->createGameObject();
}
예제 #3
0
GameObject * ObjectFactory::create(const std::string & typeID)
{
	std::map<std::string, BaseCreator*>::iterator it = m_creators.find(typeID);

	if (it == m_creators.end())
	{
		Log::Instance()->write("Error : could not find type.");
		return false;
	}

	BaseCreator * pCreator = it->second;
	return pCreator->createObject();
}
예제 #4
0
Object* ObjectFactory::create(std::string typeId)
{
    std::map<std::string, BaseCreator*>::iterator it = creators.find(typeId);

    if (it == creators.end())
    {
        LOGerr("Could not find type " << typeId);
        return NULL;
    }

    BaseCreator* creator = (*it).second;

    return creator->createObject();
}
예제 #5
0
void ActionRotateZ :: make(BaseElement* Object, BaseElement* Camera, int Index)
{
    BaseCreator* ChangeType = new CreatorRotationZ(this->Angle,this->Center);

    if (!ChangeType)
    {
        throw CreatorMemoryError();
    }

    if (Index >= 0 )
    {
       int i = 0;
       cIterator<BaseElement*> IndexObject(((cComposite*)Object)->Objects);
       while (!IndexObject.IsNullIter() && i < Index)
       {
           IndexObject.go_to_next();
           i++;
       }
       Object = IndexObject.get_value();
    }

    Object->change(ChangeType->get_change());
}