当前位置: 首页>>代码示例>>C++>>正文


C++ GameObject::GetID方法代码示例

本文整理汇总了C++中GameObject::GetID方法的典型用法代码示例。如果您正苦于以下问题:C++ GameObject::GetID方法的具体用法?C++ GameObject::GetID怎么用?C++ GameObject::GetID使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在GameObject的用法示例。


在下文中一共展示了GameObject::GetID方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: LoadGameObjects

//----------------------------------------------------------------------
// Call the factory to create new GameObject as described in the file
// Send a Event_CreateObject
void GameObjectManager::LoadGameObjects( const char* file )
{
	XmlMediator* pRoot = TinyXmlLoader::Instance().LoadFile( file );

	if( pRoot == nullptr )
	{
		std::cerr << "[GOManager] Loading objects from " << file << " failed." << std::endl;
		return;
	}

	auto pGOChildren = pRoot->GetChildren( std::string("GameObject") );
	for( auto It = pGOChildren.begin(); It != pGOChildren.end(); It++ )
	{
		GameObject* newGO = m_pGOFactory->CreateGameObject( *It );

		if( newGO != nullptr )
		{
			m_pObjects[ newGO->GetID() ] = newGO;
			EventManager::Instance().SendEvent( std::make_shared<Event_CreateObject>( Event_CreateObject( newGO ) ) );
		}
		else
		{
			std::cerr << "[GOManager] Error in GameObject load." << std::endl;
		}
	}

	SAFE_DELETE( pRoot );
}
开发者ID:GillesLeclercq,项目名称:GameEngineProjectGillesLeclercq,代码行数:31,代码来源:GameObjectManager.cpp

示例2: GetFarthestAgent

objectID Example::GetFarthestAgent( void )
{
	float farthestDistance = 0.0f;
	GameObject* farthestGameObject = 0;
	dbCompositionList list;
	g_database.ComposeList( list, OBJECT_NPC );
	
	dbCompositionList::iterator i;
	for( i=list.begin(); i!=list.end(); ++i )
	{
		if( (*i)->GetID() != m_owner->GetID() )
		{
			D3DXVECTOR3 npcPos = (*i)->GetBody().GetPos();
			D3DXVECTOR3 myPos = m_owner->GetBody().GetPos();
			D3DXVECTOR3 diff = npcPos - myPos;
			float distance = D3DXVec3Length( &diff );

			if( farthestGameObject )
			{
				if( distance > farthestDistance )
				{
					farthestDistance = distance;
					farthestGameObject = *i;
				}
			}
			else
			{
				farthestDistance = distance;
				farthestGameObject = *i;
			}
		}
	}

	return( farthestGameObject->GetID() );
}
开发者ID:MidnightDrifter,项目名称:CS580P1BehaviorTrees2.1,代码行数:35,代码来源:example.cpp

示例3: Store

/*---------------------------------------------------------------------------*
  Name:         Store

  Description:  Stores an object within the database.

  Arguments:    object : the game object

  Returns:      None.
 *---------------------------------------------------------------------------*/
void Database::Store( GameObject & object )
{
	if( Find( object.GetID() ) == 0 ) {
		m_database.push_back( &object );
	}
	else {
		ASSERTMSG( 0, "Database::Store - Object ID already represented in database." );
	}
}
开发者ID:unni07,项目名称:AI,代码行数:18,代码来源:database.cpp

示例4: Find

GameObject* GameObjectManager::Find( objectID id )
{
	std::map<int, GameObject*>::iterator b = m_allEntities.begin();
	std::map<int, GameObject*>::iterator e = m_allEntities.end();
	for ( ; b != e; b++)
	{		
		GameObject* pkGameObject = (*b).second;
		if (pkGameObject->GetID() == id)
			return pkGameObject;
	}
	return NULL;
}
开发者ID:DanielNeander,项目名称:my-3d-engine,代码行数:12,代码来源:GameObjectManager.cpp

示例5: GetIDByName

objectID GameObjectManager::GetIDByName( const char* name )
{
	std::map<int, GameObject*>::iterator b = m_allEntities.begin();
	std::map<int, GameObject*>::iterator e = m_allEntities.end();
	for ( ; b != e; b++)
	{		
		GameObject* pkGameObject = (*b).second;
		if (strcmp(pkGameObject->GetName(), name) == 0)
			return pkGameObject->GetID();
	}

	return (INVALID_OBJECT_ID);
}
开发者ID:DanielNeander,项目名称:my-3d-engine,代码行数:13,代码来源:GameObjectManager.cpp

示例6: ProcessMessages

void GameController::ProcessMessages()
{
	while(messages.size() > 0)
	{
		Message* msg = messages.front();
		messages.pop_front();

		GameObject* obj = _model->GetPlayerObject();

		if(msg->GetMessageType() == MessageType::USER_INPUT)
		{
			assert(obj != NULL);
			obj->SendMessage(msg);
		}
		else if(msg->GetMessageType() == MessageType::GAME_OBJECT_ACTION)
		{
			if(msg->GetMessageContent() == MessageContent::CREATE_OBJECT)
			{
				GameObject* obj = (GameObject*)msg->GetExtended();
				assert(obj != NULL);
				this->_model->AddNewObject(obj);
				delete msg;
			}
			else if(msg->GetMessageContent() == MessageContent::DESTROY_OBJECT)
			{
				GameObject* obj = (GameObject*)msg->GetExtended();
				_model->DestroyObject( obj->GetID());
				theReaper.DoomObject((GameObject*)msg->GetExtended());
				delete msg;
			}
			else if(msg->GetMessageContent() == MessageContent::SHOULD_RENDER)
			{				 
				_view->PassMessage(msg);				 
			}
			else if(msg->GetMessageContent() == MessageContent::DO_PHYSICS)
			{
				physicsWorld.PassMessage(msg);
			}
		}
	}
	assert(messages.size() == 0);
}
开发者ID:WestleyArgentum,项目名称:cs260-last2,代码行数:42,代码来源:GameController.cpp

示例7: if

END_ON_EDIT_FUNC

//NOTE:  THIS ASSUMES THAT THIS NODE WILL BE THE ROOT OF THE KILLER TREE

NODE_MSG_RECEIVED(SelectRandomVictim)
{
	GameObject *me = g_database.Find(self);
	if (name == AGENT_TARGETED_RESPONSE)
	{
		if(data.GetInt() == -1)
		{
			GameObject *t = g_database.Find(static_cast<objectID>(rand() % g_database.GetSize() - 1));
			if (me && t)
			{
				IBTNode::SendMsg(AGENT_TARGETED_PING, (t->GetID()), self, "CivilianIdle", MSG_Data(self));
				//In root nodes put:
				//  if cop:   if(node msg received == AGENT_TARGETED_PING), return data = -1
				//  if civilian or killer:  if(node msg received == AGENT_TARGETED_PING), return data = 1

				currentStatus = NS_Running;
			}
			else
			{
				currentStatus = NS_Failed;
			}
		}

		else
		{
			//me->SetTargetPOS()
			currentStatus = NS_Completed;
		}

	}

	else if (name == AGENT_TARGETED_PING)
	{
		currentStatus = NS_Failed;
	}
}
开发者ID:MidnightDrifter,项目名称:CS580P1BehaviorTrees2.1,代码行数:40,代码来源:SelectRandomVictim.cpp


注:本文中的GameObject::GetID方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。