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


C++ EntityManager::Update方法代码示例

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


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

示例1: main

int main(int argc, const char * argv[])
{
	EntityManager *Manager = new EntityManager;

	Entity *Thingy = Manager->GetNewEntity();

	Thingy->AddComponent("Physics", new PhysicsClass());

	Thingy->AddComponent("Graphics", new GraphicsClass());

	Manager->Update(1.0f);

	delete Manager;
	Manager = NULL;

	system("PAUSE");
	return 0;
}
开发者ID:Ahlywog,项目名称:Example-Code-1,代码行数:18,代码来源:Main.cpp

示例2: Run

 void Run(EntityManager& em, CSnakeGame& gsnake) {
     CGrid& grid = gsnake.GetGrid();
     for (auto a = em.begin(); a != em.end(); a++) {
         if (!(*a)->HasComponent<CMotion>() || !(*a)->HasComponent<CHead>()) {
             continue;
         }
         if (!IsInsideGrid(*(*a)->GetComponent<CMotion>(), gsnake.GetGrid().GetGridSize())) {
             gsnake.GameOver();
         }
     }
     for (auto a = em.begin(); a != em.end(); a++) {
         if ((*a).get() == 0 || !(*a)->HasComponent<CPlayerControlled>()) {
             continue;
         }
         CHead* head_a = (*a)->GetComponent<CHead>();
         CMotion* motion_a = (*a)->GetComponent<CMotion>();
         for (auto b = em.begin(); b != em.end(); b++) {
             if ((*b).get() == 0 || a == b || !(*b)->HasComponent<CMotion>()) {
                 continue;
             }
             CMotion* motion_b = (*b)->GetComponent<CMotion>();
             if (motion_a->GetCoords() == motion_b->GetCoords()) {
                 std::pair<int, int> xy = motion_b->GetCoords();
                 if (grid.Get(xy.first, xy.second) < 0) {
                     head_a->SetLength(head_a->GetLength() + 1);
                     xy = grid.EatFood(xy.first, xy.second);
                     em.MarkAdded(std::unique_ptr<CEntity>(new CFood(xy.first, xy.second)));
                     em.MarkRemoved(*b);
                 } else if (grid.Get(xy.first, xy.second) > 0 || (*b)->HasComponent<CHead>()) {
                     gsnake.GameOver();
                 }
             }
         }
     }
     em.Update();
 }
开发者ID:Sarkin,项目名称:WinApi-ABBYY,代码行数:36,代码来源:Collision.cpp


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