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


C++ World::CreateEntity方法代码示例

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


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

示例1: Entity_Should_Be_Created_on_CreateEntity

void World_Tests::Entity_Should_Be_Created_on_CreateEntity()
{
  World world;
  IWorldEntity* entity = world.CreateEntity("test");

  CPPUNIT_ASSERT(entity != 0);
}
开发者ID:,项目名称:,代码行数:7,代码来源:

示例2: main

int main()
{
    World world;
    auto e = world.CreateEntity();
    e.AddComponent<PositionComponent>(100, 100);
    e.AddComponent<VelocityComponent>(10, 10);
    world.GetSystemManager().AddSystem<MoveSystem>();

    for (int i = 0; i < 10; i++) {
        world.Update();
        world.GetSystemManager().GetSystem<MoveSystem>().Update();
        auto &position = e.GetComponent<PositionComponent>();
        std::cout << "x: " << position.x << ", y: " << position.y << std::endl;
    }

    return 0;
}
开发者ID:AutonomicStudios,项目名称:entity,代码行数:17,代码来源:example.cpp

示例3: Create

Entity Create(World& inWorld, MessageBroadcaster& inMsgBroadcaster, GameData* inGameData)
{
	Entity entity = inWorld.CreateEntity();

	IVec2	startingRoomIndex	= inGameData->mDungeonMap.GetPlayerStartingRoomIndex();
	Entity	room				= inGameData->mDungeonMap.GetRoomEntities().Get(startingRoomIndex);
	IVec2	roomPosition		= room.GetComponent<PositionComponent>()->GetPosition();
	
	entity.AddComponent<AnimationComponent>();
	entity.AddComponent<CollisionComponent>();
	entity.AddComponent<HealthComponent>( inGameData->mPlayerData.mMaxHealth );
	entity.AddComponent<PlayerComponent>( &inGameData->mPlayerData );
	entity.AddComponent<OrientationComponent>( EOrientation_FaceDown );
	entity.AddComponent<PositionComponent>( roomPosition + IVec2(10, 10) );
	entity.AddComponent<RenderableComponent>();
	entity.AddComponent<TriggererComponent>();
	
	entity.AddComponent<InputHandlerComponent>()->RegisterHandler
	(
		[] (const Entity& inPlayer, const InputBuffer& inBuffer)
		{
			inPlayer.GetComponent<PlayerComponent>()->HandleInput(inBuffer);
		}
	);

	entity.AddComponent<ProgramComponent>()->RegisterProgram
	(
		[] (const Entity& inPlayer, float inFrameTime)
		{
			inPlayer.GetComponent<PlayerComponent>()->Update(inPlayer, inFrameTime);
		}
	);

	entity.AddComponent<MessageReceiverComponent>()->Register<AttackMsg>
	(
		[entity, &inMsgBroadcaster] (const AttackMsg& inAttackMsg)
		{
			entity.GetComponent<PlayerComponent>()->OnAttacked(entity, inAttackMsg, inMsgBroadcaster);
		}
	);

	return entity;
}
开发者ID:kladarak,项目名称:ConsoleRogueLike,代码行数:43,代码来源:PlayerEntity.cpp

示例4: Create

Entity Create(World& inWorld, MessageBroadcaster& inMsgBroadcaster, const IVec2& inPosition)
{
	auto entity = inWorld.CreateEntity();
	
	entity.AddComponent<CollisionComponent>(kCollisionMesh);
	entity.AddComponent<PositionComponent>(inPosition);
	entity.AddComponent<RenderableComponent>(kRenderMesh);
	entity.AddComponent<TriggerBoxComponent>( IRect(1, 0, 5, 1) )->RegisterOnEnterCallback( [&] (const Entity&, const Entity& inTriggerer)
	{
		if (!inTriggerer.HasComponent<PlayerComponent>())
		{
			return;
		}

		inMsgBroadcaster.Broadcast( PlayerWentDownStairs() );
	} );

	return entity;
}
开发者ID:kladarak,项目名称:ConsoleRogueLike,代码行数:19,代码来源:Stairs.cpp

示例5:

	Console::Console(World& world, const Nz::Vector2f& size, Nz::LuaInstance& instance) :
	m_defaultFont(Nz::Font::GetDefault()),
	m_instance(instance),
	m_size(size),
	m_opened(false),
	m_characterSize(24)
	{
		Nz::MaterialRef backgroundMaterial = Nz::Material::New();
		backgroundMaterial->Enable(Nz::RendererParameter_Blend, true);
		backgroundMaterial->Enable(Nz::RendererParameter_DepthBuffer, false);
		backgroundMaterial->SetDstBlend(Nz::BlendFunc_InvSrcAlpha);
		backgroundMaterial->SetSrcBlend(Nz::BlendFunc_SrcAlpha);

		// History bakckground
		m_historyBackgroundSprite = Nz::Sprite::New();
		m_historyBackgroundSprite->SetColor(Nz::Color(80, 80, 160, 128));
		m_historyBackgroundSprite->SetMaterial(backgroundMaterial);

		m_historyBackground = world.CreateEntity();
		m_historyBackground->Enable(m_opened);
		m_historyBackground->AddComponent<Ndk::GraphicsComponent>().Attach(m_historyBackgroundSprite, -1);
		m_historyBackground->AddComponent<Ndk::NodeComponent>().SetParent(this);

		// History
		m_historyDrawer.SetCharacterSize(m_characterSize);
		m_historyDrawer.SetColor(Nz::Color(200, 200, 200));
		m_historyDrawer.SetFont(m_defaultFont);

		m_historyTextSprite = Nz::TextSprite::New();

		m_history = world.CreateEntity();
		m_history->Enable(m_opened);
		m_history->AddComponent<Ndk::GraphicsComponent>().Attach(m_historyTextSprite);

		Ndk::NodeComponent& historyNode = m_history->AddComponent<Ndk::NodeComponent>();
		historyNode.SetParent(this);

		// Input background
		m_inputBackgroundSprite = Nz::Sprite::New();
		m_inputBackgroundSprite->SetColor(Nz::Color(255, 255, 255, 200));
		m_inputBackgroundSprite->SetMaterial(backgroundMaterial);

		m_inputBackground = world.CreateEntity();
		m_inputBackground->Enable(m_opened);
		m_inputBackground->AddComponent<Ndk::GraphicsComponent>().Attach(m_inputBackgroundSprite, -1);
		m_inputBackground->AddComponent<Ndk::NodeComponent>().SetParent(this);

		// Input
		m_inputDrawer.SetColor(Nz::Color::Black);
		m_inputDrawer.SetCharacterSize(m_characterSize);
		m_inputDrawer.SetFont(m_defaultFont);
		m_inputDrawer.SetText(s_inputPrefix);

		m_inputTextSprite = Nz::TextSprite::New();
		m_inputTextSprite->Update(m_inputDrawer);

		m_input = world.CreateEntity();
		m_input->Enable(m_opened);
		m_input->AddComponent<Ndk::GraphicsComponent>().Attach(m_inputTextSprite);

		Ndk::NodeComponent& inputNode = m_input->AddComponent<Ndk::NodeComponent>();
		inputNode.SetParent(this);
		
		Layout();
	}
开发者ID:GigAnon,项目名称:NazaraEngine,代码行数:65,代码来源:Console.cpp


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