我试图从面向数据的角度进行碰撞检测。一旦检测到碰撞,我想移除敌人,不知道如何使其尽可能优化 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;
}
像我现在一样立即从向量中删除整数对是否可以,或者我应该以某种方式将所有“检测到”的碰撞存储在另一个向量中并从那里继续?我是新来的以数据为导向的术语思考,任何帮助将不胜感激。