simplify velocityInRandomDIr()
This commit is contained in:
parent
0941089dfa
commit
197a3bcfd5
|
|
@ -16,31 +16,20 @@ sf::Vector2f getOverlap(const sf::FloatRect first, const sf::FloatRect second)
|
||||||
|
|
||||||
sf::Vector2f velocityInRandomDir(const float speed_in)
|
sf::Vector2f velocityInRandomDir(const float speed_in)
|
||||||
{
|
{
|
||||||
const bool upOrDown{(bool)Random::get(0,1)};
|
|
||||||
const bool leftOrRight{(bool)Random::get(0,1)};
|
const bool leftOrRight{(bool)Random::get(0,1)};
|
||||||
|
|
||||||
// get angle within certain ranges so that the ball does not
|
// get angle within certain ranges so that the ball does not
|
||||||
// start moving straight side to side or up and down
|
// start moving straight side to side or up and down
|
||||||
if (upOrDown && leftOrRight)
|
if (leftOrRight)
|
||||||
{// up left
|
{// left
|
||||||
const sf::Angle angle = sf::degrees((float)Random::get(220, 255));
|
const sf::Angle angle = sf::degrees((float)Random::get(220, 255));
|
||||||
return sf::Vector2f{speed_in * std::cos(angle.asRadians()), speed_in * std::sin(angle.asRadians())};
|
return sf::Vector2f{speed_in * std::cos(angle.asRadians()), speed_in * std::sin(angle.asRadians())};
|
||||||
}
|
}
|
||||||
else if (upOrDown && !leftOrRight)
|
else if (!leftOrRight)
|
||||||
{// up right
|
{// right
|
||||||
const sf::Angle angle = sf::degrees((float)Random::get(285, 315));
|
const sf::Angle angle = sf::degrees((float)Random::get(285, 315));
|
||||||
return sf::Vector2f{speed_in * std::cos(angle.asRadians()), speed_in * std::sin(angle.asRadians())};
|
return sf::Vector2f{speed_in * std::cos(angle.asRadians()), speed_in * std::sin(angle.asRadians())};
|
||||||
}
|
}
|
||||||
else if (!upOrDown && leftOrRight)
|
|
||||||
{// down left
|
|
||||||
const sf::Angle angle = sf::degrees((float)Random::get(105, 130));
|
|
||||||
return sf::Vector2f{speed_in * std::cos(angle.asRadians()), speed_in * std::sin(angle.asRadians())};
|
|
||||||
}
|
|
||||||
else if (!upOrDown && !leftOrRight)
|
|
||||||
{// down right
|
|
||||||
const sf::Angle angle = sf::degrees((float)Random::get(30, 75));
|
|
||||||
return sf::Vector2f{speed_in * std::cos(angle.asRadians()), speed_in * std::sin(angle.asRadians())};
|
|
||||||
}
|
|
||||||
|
|
||||||
return {0,0};// means something went wrong
|
return {0,0};// means something went wrong
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue