Продолжение моего предыдущего вопроса, который теперь решен:
Проблема с указателями (только в сборке релиза)
После внесения необходимых изменений в способ создания врагов мне также пришлось изменить способы взаимодействия других объектов с врагами по очевидным причинам.
Теперь, похоже, я снова что-то делаю не так: /
Здесь у меня есть некоторый код для моих снарядов, который я создаю, чтобы поразить врагов, но этот делает противоположное и останавливает врага на короткий промежуток времени.
if ((enemies[numOfEnemies].position.x + (enemies[numOfEnemies].width / 2) > bullet.position.x &&
enemies[numOfEnemies].position.x < bullet.position.x + bullet.width) &&
(enemies[numOfEnemies].position.y + (enemies[numOfEnemies].height / 2) > bullet.position.y &&
enemies[numOfEnemies].position.y < bullet.position.y + bullet.height) &&
enemies[numOfEnemies].speed != 0)
{
//We've collided with the wall, stop the enemy
enemies[numOfEnemies].previousSpeed = enemies[numOfEnemies].speed;
enemies[numOfEnemies].speed = 0;
}
Как видите, простые вещи. Но похоже, что вектор врагов продолжает сбрасываться, не зная, что здесь происходит. До этого снова работал превосходно, с изменениями, произошедшими после перехода от указателей к векторам, возникла эта проблема: /.
void Towers::Update(std::vector<Enemies> enemies, SDLib& lib, Map cMap)
Вот как я передаю вектор своей функции. Вектор выходит из области видимости и затем очищается автоматически? Если так, то что мне нужно сделать, чтобы назначить изменения, которые я делаю, для фактических данных?
Любая помощь приветствуется!