本文整理汇总了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 );
}
示例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() );
}
示例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." );
}
}
示例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;
}
示例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);
}
示例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);
}
示例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;
}
}