Vec2 touch_end_pos = touch->getLocation();
Vec2 diff = touch_end_pos - touch->getStartLocation();
diff.normalize();
auto a = std::move(Vec2(1, 0));
auto result = Vec2::dot(diff, a);
if (fabs(result) > 0.7) // left or right , cos45 = 0.7
{
if (result > 0) // right
{
_player->tryMove(Player::DIRECTION::RIGHT);
CCLOG("right");
}
else // left
{
_player->tryMove(Player::DIRECTION::LEFT);
CCLOG("left");
}
}
else
{
if (diff.y > 0)
{
_player->tryMove(Player::DIRECTION::FRONT);
CCLOG("front");
}
else
{
_player->tryMove(Player::DIRECTION::BEHIND);
CCLOG("behind");
}
}
八方位位置判断代码——1
最新推荐文章于 2021-03-20 01:40:59 发布