Я пытаюсь получить Enemy
перейти к моему Player
,
То, что я знаю:
Что мне нужно сделать:
Поэтому я подумал, что мне нужно «нормализовать» позицию врагов в соответствии с позицией игроков, чтобы я знал, куда идти, и у обоих есть позиция, основанная на Vector2f
,
И это код, который я имею во враге:
void Enemy::Move()
{
//cout << "Move" << endl;
// Make movement
Vector2f playerPosition = EntityManager::Instance().player.GetPosition();
Vector2f thisPosition;
thisPosition.x = xPos;
thisPosition.y = yPos;
//Vector2f direction = normalize(playerPosition - thisPosition);
speed = 5;
//EntityManager::Instance().enemy.enemyVisual.move(speed * direction);
}
Vector2f normalize(const Vector2f& source)
{
float length = sqrt((source.x * source.x) + (source.y * source.y));
if (length != 0)
return Vector2f(source.x / length, source.y / length);
else
return source;
}
Ошибка:
'normalize': identifier not found
Что я делаю неправильно?
Ваше определение для normalize
не приходит, пока вы не используете его. Либо перенести определение до Enemy::Move
или поместите объявление функции вверху вашего файла после того, как вы включили:
Vector2f normalize(const Vector2f& source);
Это маленький пример того же поведения.