Не обновляются значения в vector

Проблема заключается в том, что при изменения элемента списка, он сам обновляется, но в списке остается в прежнем состоянии. То есть введите сюда описание изображения

введите сюда описание изображения

Код:

void EnemeyManager::followPlayer() {
    for (auto enemy : enemiesList) {
        int newX = player->getX() - enemy.getX();
        int newY = player->getY() - enemy.getY();

        int signX = math.sign(newX);
        int signY = math.sign(newY);

        if (!collisionManager.chekCollisionWall(newX, newY)) {
            enemy.setY(enemy.getY() + signY);
            enemy.setX(enemy.getX() + signX);
        } else if (collisionManager.chekWallCollisionX(newX)) {
            enemy.setY(enemy.getY() + signY);
        } else if (collisionManager.chekWallCollisionY(newY)) {
            enemy.setX(enemy.getX() + signX);
        }
    }
}

Метод работает на вычитании векторов.

Код sign:

int MathUtils::sign(int num) {
    int sign = 0;
    if (num > 0) {
        sign = 1;
    } else if (num < 0) {
        sign = -1;
    } else if (num == 0) {
        sign = 0;
    }
    return sign;
}

Ответы (1 шт):

Автор решения: Harry
for (auto & enemy : enemiesList) {

Обратите внимание на & - без него вы работаете просто с копией...

→ Ссылка