This commit is contained in:
aozhiwei 2019-03-23 14:12:17 +08:00
parent 609ae95ad1
commit c64cdb2f3f

View File

@ -148,8 +148,9 @@ void Human::FindPath()
{ {
Vector2D old_pos = pos; Vector2D old_pos = pos;
{ {
float dot = Vector2D::UP.Dot(move_dir); float up_dot = Vector2D::UP.Dot(move_dir);
if (std::abs(dot) <= 0.001f) { //相互垂直 bool at_left_side = Vector2D::LEFT.Dot(move_dir) > 0.0001f;
if (std::abs(up_dot) <= 0.001f) { //相互垂直
//向上 //向上
pos = old_pos + Vector2D::UP; pos = old_pos + Vector2D::UP;
if (!IsCollision()) { if (!IsCollision()) {
@ -161,9 +162,8 @@ void Human::FindPath()
return; return;
} }
} }
} else if (dot > 0.001f) { //基本相同 } else if (up_dot > 0.001f) { //基本相同
//向右 pos = old_pos + (at_left_side ? Vector2D::LEFT : Vector2D::RIGHT);
pos = old_pos + Vector2D::RIGHT;
if (!IsCollision()) { if (!IsCollision()) {
return; return;
} else { } else {
@ -173,37 +173,8 @@ void Human::FindPath()
return; return;
} }
} }
} else if (dot < 0.001f) { //基本相反 } else if (up_dot < 0.001f) { //基本相反
//向右 pos = old_pos + (at_left_side ? Vector2D::LEFT : Vector2D::RIGHT);
pos = old_pos + Vector2D::RIGHT;
if (IsCollision()) {
//向下
pos = old_pos + Vector2D::DOWN;
if (!IsCollision()) {
return;
}
} else {
return;
}
}
}
{
float dot = Vector2D::DOWN.Dot(move_dir);
if (std::abs(dot) <= 0.001f) { //相互垂直
//向下
pos = old_pos + Vector2D::DOWN;
if (!IsCollision()) {
return;
} else {
//向上
pos = old_pos + Vector2D::UP;
if (!IsCollision()) {
return;
}
}
} else if (dot > 0.001f) { //基本相同
//向左
pos = old_pos + Vector2D::LEFT;
if (!IsCollision()) { if (!IsCollision()) {
return; return;
} else { } else {
@ -213,18 +184,7 @@ void Human::FindPath()
return; return;
} }
} }
} else if (dot < 0.001f) { //基本相反
//向左
pos = old_pos + Vector2D::LEFT;
if (!IsCollision()) {
return;
} else {
//向上
pos = old_pos + Vector2D::UP;
if (!IsCollision()) {
return;
}
}
} }
} }
pos = old_pos;
} }