Skip to content

Instantly share code, notes, and snippets.

@nzatsepilov
Created January 24, 2014 13:26
Show Gist options
  • Save nzatsepilov/8597200 to your computer and use it in GitHub Desktop.
Save nzatsepilov/8597200 to your computer and use it in GitHub Desktop.
void ConfusedMovementGenerator<UNIT>::_generateMovement(UNIT &unit)
{
for (uint8 i = 0; i < MAX_RANDOM_POINTS; ++i)
{
// Берем стандартный поинт
float angle = urand(0, 2*M_PI);
bool isValidPoint = unit.GetValidPointInAngle(dPos[i], WANDER_DISTANCE, angle, true, true);
// Если взялся ближе чем нужно (т.е. впереди припятствие), ищем подходящий угол, чтобы обойти.
for (uint8 j = 0; j < 4 && !isValidPoint; ++j)
{
angle+= M_PI/6;
isValidPoint = unit.GetValidPointInAngle(dPos[i], WANDER_DISTANCE, angle, true, true);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment