#include "common/oneworldenv.h"
#include "LabEngine/base/kaimfileopener.h"
namespace
{
#define TEST_ENV_CLASS OneWorldEnv
TEST_ENV {}
TUTORIAL
{
KT_LOG_TITLE_BEGIN("TUTORIAL - Create and update CylinderObstacle");
CHECK(env.LoadAndAddNavData(
"GeneratedNavData/plan/plan.NavData") !=
KY_NULL);
env.StartVisualDebugUsingLocalFile("CylinderObstacle.VisualDebug");
cylinderObstacleInitConfig.
m_world = env.GetWorld();
cylinderObstacleInitConfig.
m_startPosition =
Kaim::Vec3f(1.f, 0.f, 0.f);
cylinderObstacleInitConfig.
m_height = 2.f;
cylinderObstacleInitConfig.
m_radius = 1.f;
cylinderObstacle->
Init(cylinderObstacleInitConfig);
for (
KyUInt32 gameFrame = 0; gameFrame < 10; ++gameFrame)
{
switch (gameFrame)
{
case 0:
case 1:
case 2:
case 3:
case 7:
{
cylinderObstacle->
SetPosition(cylinderObstacle->
GetPosition() + cylinderObstacle->
GetVelocity());
break;
}
case 4:
break;
case 6:
break;
case 8:
{
cylinderObstacle->SetPosition(cylinderObstacle->GetPosition());
break;
}
default:
break;
}
}
env.CleanUpWorld();
}
TUTORIAL
{
KT_LOG_TITLE_BEGIN("TUTORIAL - Create and Update BoxObstacle");
CHECK(env.LoadAndAddNavData(
"GeneratedNavData/plan/plan.NavData") !=
KY_NULL);
env.StartVisualDebugUsingLocalFile("BoxObstacle.VisualDebug");
boxObstacleInitConfig.
m_world = env.GetWorld();
boxObstacleInitConfig.
m_startPosition =
Kaim::Vec3f(1.f, 0.f, 0.f);
boxObstacleInitConfig.
m_localHalfExtents =
Kaim::Vec3f(1.f, 1.f, 1.f);
boxObstacle->
Init(boxObstacleInitConfig);
for (
KyUInt32 gameFrame = 0; gameFrame < 10; ++gameFrame)
{
Kaim::Vec3f boxCenterOnNavMesh = boxObstacle->GetTransform().
m_translation + boxCenterRelativePosition;
transform.m_translation = boxCenterOnNavMesh;
}
env.CleanUpWorld();
}
TUTORIAL
{
KT_LOG_TITLE_BEGIN("TUTORIAL - Create and Update BoxObstacle");
CHECK(env.LoadAndAddNavData(
"GeneratedNavData/village_with_building_100m_yUP/village_with_building_100m_yUP.NavData") !=
KY_NULL);
env.StartVisualDebugUsingLocalFile("BoxObstacle_Yup.VisualDebug");
coordSystem.
Setup(oneMeterInClientUnits, clientAxisForX, clientAxisForY, clientAxisForZ);
Kaim::Vec3f boxClientHalfExtents(200.0f, 50.0f, 100.0f);
boxClientTransform.m_translation.
Set(3000.0f, -50.0f, 3000.0f);
boxObstacleInitConfig.
m_world = env.GetWorld();
boxObstacle->
Init(boxObstacleInitConfig);
for (
KyUInt32 gameFrame = 0; gameFrame < 100; ++gameFrame)
{
boxClientTransform.m_rotationMatrix = clientRotationMatrix * boxClientTransform.m_rotationMatrix;
}
env.CleanUpWorld();
}
}