1

我试图从面向数据的角度进行碰撞检测。一旦检测到碰撞,我想移除敌人,不知道如何使其尽可能优化 CPU,现在我这样做:

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;
}

像我现在一样立即从向量中删除整数对是否可以,或者我应该以某种方式将所有“检测到”的碰撞存储在另一个向量中并从那里继续?我是新来的以数据为导向的术语思考,任何帮助将不胜感激。

4

0 回答 0