Пример #1
0
void GameObjectManager::Update(float32 timeElapsed)
{
	isInUpdate = true;
	// Than perform usual update
	for (List<GameObject*>::iterator currentPos = objects.begin(); currentPos != objects.end(); ++currentPos)
	{
		GameObject *object = *currentPos;
		if (object->dead)continue;
		if(object->GetParent() == 0)
            object->Update(timeElapsed);
    }
	
	RecalcObjectsHierarchy();
	
	for (List<GameObject*>::iterator currentPos = objects.begin(); currentPos != objects.end(); ++currentPos)
	{
		GameObject * object = *currentPos;
		if (object->dead)continue;
		object->CollisionPhase();
	}		
	
	isInUpdate = false;
	
	ProcessChangesStack();
}
Пример #2
0
void GameObjectManager::RecalcObjectsHierarchy()
{
    List<GameObject*>::iterator currentPos_end = objects.end();
	for(List<GameObject*>::iterator currentPos = objects.begin(); currentPos != currentPos_end; ++currentPos)
	{
		GameObject * object = *currentPos;
		if (object->dead)continue;
		if (object->GetParent() == 0)
			object->RecalcHierarchy(drawState);
	}
}