面向数据的碰撞检测

时间:2016-03-12 08:47:48

标签: c++ cpu data-oriented-design

我试图从面向数据的角度进行碰撞检测。我想在检测到碰撞后移除敌人,不知道如何使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;
}

可以像我现在那样立即从矢量中移除整数对,或者我应该以某种方式存储所有&#34;检测到的&#34;在另一个向量中的碰撞并从那里继续?我是新的以数据方式思考,任何帮助都会受到赞赏。

0 个答案:

没有答案