/**
  * Check if 'quelPerso' is colliding with the given element.
  *
  * @param x
  * @param y
  * @param quelElement
  * @param quelPerso
  * @param rayon
  * @return Perso
  */
 private boolean checkCollisionOnPerso(
     int x, int y, Element quelElement, Perso quelPerso, int rayon) {
   if (quelPerso.isZildo()
       && quelElement != null
       && quelElement.getDesc() instanceof ElementDescription) {
     ElementDescription d = (ElementDescription) quelElement.getDesc();
     if (d.isPushable() && quelElement.vx + quelElement.vy != 0f) {
       return false;
     }
   }
   int tx = (int) quelPerso.getX();
   int ty = (int) quelPerso.getY();
   PersoDescription descToCompare = quelPerso.getDesc();
   int rayonPersoToCompare = rayon;
   if (descToCompare != null) {
     rayonPersoToCompare = descToCompare.getRadius();
   }
   // Do we have a Perso in parameters ?
   Perso perso = null;
   if (quelElement != null && quelElement.getEntityType().isPerso()) {
     perso = (Perso) quelElement;
   }
   if (EngineZildo.collideManagement.checkCollisionCircles(
       x, y, tx, ty, rayon, rayonPersoToCompare)) {
     if (perso != null && perso.isZildo() && perso.linkedSpritesContains(quelPerso)) {
       // Collision entre Zildo et l'objet qu'il porte dans les mains => on laisse
     } else if (quelElement == null || quelElement.getLinkedPerso() != quelPerso) {
       return true;
     }
   }
   // No collision
   return false;
 }