Esempio n. 1
0
ZombieManager::~ZombieManager(void)
{
	Camera::sharedCameraInstance()->remove(this);
	//zrm.release();
	list<Zombie*>::iterator it;
	for(it=zombies.begin(); it!=zombies.end(); it++)
		deadZombies.push_back(*it);

	for(it = deadZombies.begin();it != deadZombies.end(); it++)
		deleteZombie(*it);

	zombies.clear();
	deadZombies.clear();

	if(hugeZombie) 
	{
		deleteZombie(hugeZombie);
		SoundManager::getInstance()->stopEffect(hugeZombieSoundId);
	}
}
Esempio n. 2
0
//movement of zombies to follow player
void Zombie::move(){

     if((x()<player1->x()) && (y()<player1->y())){
        zombieCollision();
        setPos(x()+.7, y() + .7);
        zombieCollision();
        collision();
        deleteZombie();
        direct=1;
    }
    if((x()>player1->x()) && (y()<player1->y())){
        zombieCollision();
        setPos(x()-.7,y()+.7);
        zombieCollision();
        collision();
        deleteZombie();
        direct=2;
    }
    if((x()<player1->x()) && (y()>player1->y())){
        zombieCollision();
        setPos(x()+.7, y() -.7);
        zombieCollision();
        collision();
        deleteZombie();
        direct=3;
    }
    if((x()>player1->x()) && (y()>player1->y())){
        zombieCollision();
        setPos(x()-.7,y()-.7);
        zombieCollision();
        collision();
        deleteZombie();
        direct=4;
    }


}
Esempio n. 3
0
void AllZombies::killDead(Zombie* z)
{
    int row;
    // qDebug()<<"come to AllZombies::killDead first line";
    row = z->pos().y()/GRID_Y;
    QLinkedList<Zombie *>::iterator it = qFind(zombieList[row].begin(),
                                               zombieList[row].end(), z);
    // qDebug()<<"come to AllZombies::killDead";
    emit deleteZombie(z);
    if (it != zombieList[row].end())
        zombieList[row].erase(it);
    // qDebug()<<zombieList[row].size();
    // qDebug()<<"come to AllZombies::killDead after delete";
    z->deleteLater();
}
Esempio n. 4
0
void ZombieManager::update(float dt,b2Vec2 pv)
{

	//long currentTime = GetTickCount();
	unsigned long currentTime = Timer::getCurrentTime();
	
	updateEnerge(dt);

	list<Zombie*>::iterator it;

	for(it=zombies.begin(); it!=zombies.end(); it++)
	{
		Zombie* z= *it;

		z->update(dt,pv);
		//z->directionUpdate();
		
		if(z->currentState == Zombie::dead ||
			z->getPositionWithCocos().x < 0)
		{
			deadZombies.push_back(z);
		}
	}
	if(hugeZombie) 
	{
		hugeZombie->update(dt,pv);
	}

	for(it=deadZombies.begin(); it!=deadZombies.end(); it++)
	{
		Zombie* dz = *it;
		deleteZombie(dz);
	}
	deadZombies.clear();

}