Обнаружение столкновений на основе данных

Я пытаюсь сделать обнаружение столкновений с точки зрения данных. Я хочу убрать врага после обнаружения столкновения, не уверенный, как сделать его максимально оптимальным для процессора, сейчас я делаю так:

bool EnemyManager::isCollidedWithBullet(float x, float y, int& numEnemies){
    for(auto it = positions.begin(); it != positions.end(); ++it){

        // Collision detected
        if(x > it->first && x < it->first+enemyWidth && y < it->second + enemyHeight){
            positions.erase(it);
            numEnemies = positions.size();
            return true;
        }

    }
    return false;
}

Можно ли сразу удалить целую пару из вектора, как я это делаю сейчас, или я должен каким-то образом сохранить все "обнаруженные" столкновения в другом векторе и продолжить оттуда? Я новичок, чтобы думать с точки зрения данных, и любая помощь будет оценена.

0 ответов

Другие вопросы по тегам