c ++ - _Block_Type_Is_Valid(pHead-> nBlockUse)错误?

时间:2016-04-08 17:24:09

标签: c++ collision-detection collision

我正在尝试制作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);
    }
}

0 个答案:

没有答案