diff options
author | Nick Samarin <nicks1987@bigmir.net> | 2010-07-29 18:06:48 +0400 |
---|---|---|
committer | Nick Samarin <nicks1987@bigmir.net> | 2010-07-29 18:06:48 +0400 |
commit | 870e0e37e52ec644ad1e2e728b8b9b422b1a6dc4 (patch) | |
tree | c3c7c685ffb3cefba83d6bdd14056131ad89036a /source/gameengine/Ketsji/KX_SteeringActuator.cpp | |
parent | 14171324b7819842f89503f16bcb5fe4c8e91b1c (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.cpp | 6 |
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; |