世界是一个核心运行时对象,包含一个或多个 NavData 集以及其他使用该 NavData 的动态对象。
当您创建世界时,应指定世界应创建和维护的数据库的数量。在本教程中,您只需要一个数据库。最后,您需要为计划加载到世界的每个 NavData 集创建单独的数据库:即,为每种类型的角色创建一个数据库,这些角色的物理特性和/或移动功能截然不同,因而需要属于自己的 NavData 集。
例如:[Tutorial_FirstIntegration.cpp 中的代码]
#include "gwnavruntime/world/world.h" ... class MyGameWorld { public: MyGameWorld() : m_gameFrameIdx(0), m_world(KY_NULL) {} bool Initialize(); void Update(float deltaTimeInSeconds); void Destroy(); ... protected: KyUInt32 m_gameFrameIdx; Kaim::Ptr<Kaim::World> m_world; ... }; bool MyGameWorld::Initialize() { ... const KyUInt32 databaseCount = 1; m_world = *KY_NEW Kaim::World(databaseCount); ... } void MyGameWorld::Update(float deltaTimeInSeconds) { ... m_world->Update(deltaTimeInSeconds); ... } void MyGameWorld::Destroy() { ... m_world = KY_NULL; } ... class MyGame { public: bool Initialize(); void Update(float deltaTimeInSeconds); void Destroy(); protected: MyGameWorld m_world; }; bool MyGame::Initialize() { ... return m_world.Initialize(); } void MyGame::Update(float deltaTimeInSeconds) { m_world.Update(deltaTimeInSeconds); } void MyGame::Destroy() { m_world.Destroy(); ... }