示例#1
0
void Hero::handlePlayerCollision(Projectile *projectile)
{
    
    Tile* tile = m_Level->getTileForPosition(projectile->getX(), projectile->getY());
    
    //Cycle through all the enemies and check for Collision with the projectile
    for(int i = 0; i < m_Level->getEnemies().size(); i++)
    {
        Enemy* enemy = m_Level->getEnemies().at(i);
        if(enemy != NULL && enemy->getIsActive() == true)
        {
            //Get the Tile the enemy is on
            Tile* enemyTile = m_Level->getTileForPlayer(enemy);
            
            //Is the projectile on the same tile as the enemy?
            if(tile == enemyTile)
            {
                Log::debug("Hero projectile hit an enemy");
                
                //Apply damage to the enemy AND set The projectile to inactive
                enemy->applyDamage(projectile->getDamage());
                projectile->setIsActive(false);
            }
        }
        
    }
}
void Charmander::handlePlayerCollision(Projectile* projectile)
{
    Tile* tile = m_Level->getTileForPosition(projectile->getX(), projectile->getY());
    
    //cycle through all the enemesn  and ceck for the collision with the projectile
    for(int i = 0; i < m_Level->getEnemies().size(); i ++)
    {
        Enemy* enemy = m_Level->getEnemies().at(i);
        if(enemy != NULL && enemy->getIsActive() == true)
        {
            //get the tile the enemy is on
            Tile* enemyTile = m_Level->getTileForPlayer(enemy);
            
            //is the projectile on the same tile as the emnemy?
            if(tile == enemyTile)
            {
                // Log::debug("Hero projectile hit an enemy");
                
                // apply damage tot he enemt and set the projectile
                enemy->applyDamage(projectile->getDamage());
                projectile->setIsActive(false);
            }
        }
    }
}