解释一下//敌机添加函数 bool AddEnemy(vector <Enemy* >& es,IMAGE& enemyimg) { Enemy* e = new Enemy(enemyimg, rand() % (swidth - enemyimg.getwidth())); for (auto& i:es) { if (RectDuangRect(i->GetRect(),e->GetRect())) { delete e; return false; } } es.push_back(e); return true; }
时间: 2024-04-09 07:30:22 浏览: 114
这段代码是一个敌机添加函数`AddEnemy()`的实现。
函数接受一个存储敌机对象指针的向量`es`和一个表示敌机图像的引用`enemyimg`作为参数。在函数内部,首先创建了一个新的敌机对象指针`e`,它使用给定的敌机图像和随机生成的横坐标(限制在屏幕宽度范围内)进行初始化。
然后,通过遍历向量`es`中的每一个敌机对象指针,使用碰撞检测函数`RectDuangRect()`检测新创建的敌机对象与已有敌机对象之间是否发生了碰撞。如果发生了碰撞,表示新创建的敌机与某个已有敌机重叠,需要释放新创建的敌机对象的内存并返回`false`。
如果没有发生碰撞,则将新创建的敌机对象指针添加到向量`es`中,并返回`true`表示成功添加敌机。
这段代码用于在游戏中动态添加敌机对象,避免敌机重叠出现。
阅读全文