Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Samarin <nicks1987@bigmir.net>2010-07-29 18:06:48 +0400
committerNick Samarin <nicks1987@bigmir.net>2010-07-29 18:06:48 +0400
commit870e0e37e52ec644ad1e2e728b8b9b422b1a6dc4 (patch)
treec3c7c685ffb3cefba83d6bdd14056131ad89036a /source/gameengine/Ketsji/KX_SteeringActuator.cpp
parent14171324b7819842f89503f16bcb5fe4c8e91b1c (diff)
- fixed bug in steering actuator: calculate 2d distance to target for seeking and fleeing
- added possibility to add navmesh modifier manually in order to transform manually created mesh to navigation mesh (with navigation polygons data layer) - added possibility to use existed navigation mesh object for navmesh generation (so new object won't be created, but existed object will be updated)
Diffstat (limited to 'source/gameengine/Ketsji/KX_SteeringActuator.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_SteeringActuator.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/source/gameengine/Ketsji/KX_SteeringActuator.cpp b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
index 78b6247b775..f70826d16f9 100644
--- a/source/gameengine/Ketsji/KX_SteeringActuator.cpp
+++ b/source/gameengine/Ketsji/KX_SteeringActuator.cpp
@@ -173,13 +173,15 @@ bool KX_SteeringActuator::Update(double curtime, bool frame)
const MT_Point3& mypos = obj->NodeGetWorldPosition();
const MT_Point3& targpos = m_target->NodeGetWorldPosition();
MT_Vector3 vectotarg = targpos - mypos;
+ MT_Vector3 vectotarg2d = vectotarg;
+ vectotarg2d.z() = 0;
MT_Vector3 steervec = MT_Vector3(0, 0, 0);
bool apply_steerforce = false;
bool terminate = true;
switch (m_mode) {
case KX_STEERING_SEEK:
- if (vectotarg.length2()>m_distance*m_distance)
+ if (vectotarg2d.length2()>m_distance*m_distance)
{
terminate = false;
steervec = vectotarg;
@@ -188,7 +190,7 @@ bool KX_SteeringActuator::Update(double curtime, bool frame)
}
break;
case KX_STEERING_FLEE:
- if (vectotarg.length2()<m_distance*m_distance)
+ if (vectotarg2d.length2()<m_distance*m_distance)
{
terminate = false;
steervec = -vectotarg;