我正在尝试制作2D游戏。目前我正试图在触及我的玩家时杀死敌人。然而,当敌人和玩家碰撞我的程序中止并且我得到错误_Block_Type_Is_Valid(pHead-> nBlockUse)。 我究竟做错了什么? 更新功能检测敌人类别中的碰撞:
void Enemy::update(Player& player){
Normalised.x = (player.pos.x - vec.x) / vec.distanceSquared(player.pos);
Normalised.y = (player.pos.y - vec.y) / vec.distanceSquared(player.pos);
if (vec.distanceSquared(player.pos)<0.5){
vec.x += Normalised.x*zombie_speed;
vec.y += Normalised.y*zombie_speed;
}
if (player.radius + radius>(vec.distance(player.pos))){
alive = false;
}
};
然后在我的main.cpp中声明
Enemy enemy1(0.9,0.9,0.2);
Enemy enemy2(0.4, 0.4, 0.2);
vector<Enemy*> enemyList;
然后我将我的敌人放入main.cpp
中init()函数的向量中enemyList.push_back(&enemy1);
enemyList.push_back(&enemy2);
这是我在更新功能中检查main.cpp的地方,以查看敌人是否还活着,如果没有则删除(杀死)它......
vector<Enemy*>::iterator ie;
for (ie = enemyList.begin(); ie != enemyList.end(); ie++) {
if ((*ie)->alive==false){
delete *ie;
enemyList.erase(ie);
}
}