From b0d3bd8feb7e5c36b545d78d4f62a577e8a88d47 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 3 Aug 2021 05:45:16 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AE=95=E6=9C=BA=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/app.cc | 11 +++++++++++ server/gameserver/creature.cc | 8 ++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/server/gameserver/app.cc b/server/gameserver/app.cc index 91683f7..a048772 100644 --- a/server/gameserver/app.cc +++ b/server/gameserver/app.cc @@ -31,6 +31,8 @@ #include "framework/cpp/tglog.h" #include "framework/cpp/httpclientpool.h" +#include "collider.h" + struct MsgNode { SocketFrom_e sockfrom; @@ -92,6 +94,15 @@ static void SavePerfLog() bool App::Init(int argc, char* argv[]) { + #if 0 + { + AabbCollider a_collider; + AabbCollider b_collider; + a8::Vec2 new_pos; + bool ret = a_collider.CalcSafePoint(&b_collider, new_pos); + int i = 0; + } + #endif signal(SIGPIPE, SIG_IGN); this->argc = argc; this->argv = argv; diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 212a9d0..d1a92ce 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2320,8 +2320,12 @@ void Creature::FindLocationWithTarget(Entity* target, ColliderComponent* target_ } } } - a8::Vec2 new_pos_dir = new_pos - old_pos; - new_pos_dir.Normalize(); + a8::Vec2 new_pos_dir = a8::Vec2::UP; + //特殊情况处理 + if (new_pos.ManhattanDistance(old_pos) > 0.0001f) { + new_pos_dir = new_pos - old_pos; + new_pos_dir.Normalize(); + } float distance = (new_pos - old_pos).Norm(); for (int i = distance; i < 10000000; i += 5) { SetPos(old_pos + new_pos_dir * i);