Ciao a tutti, sto sviluppando un gioco nel quale faccio spostare nella mappa un indicatore.
Fin qui non ho problemi, ho trovato le mie coordinate ed ho impostato un'animazione.
codice:
function Cella(val){
 var cella_attuale = '<?php echo $_GET['cella'];?>';
 var cella_dest = (val);
 document.getElementById('cella_id').value = cella_dest;
 
 
 //posizione celle
 var x = $('#cella'+cella_attuale).position();
 var y = $('#cella'+cella_dest).position();
 

 //calcolo diagonali
 var base1 = x.left * x.left;
 var base2 = y.left * y.left;
 var altezza1 = x.top * x.top;
 var altezza2 = y.top * y.top;
 var diagonale1 = Math.sqrt(base1+altezza1);
 var diagonale2 = Math.sqrt(base2+altezza2);


 var velocità = '<?php echo $row['attributo3'];?>';
 var spazio = Math.abs(diagonale2 - diagonale1);
 var TempoMovimento = (100 / velocità) * spazio * 10;
 
 
 $.ajax({
  type: "POST",
  url: "db/cerca_mappa.php",
  data: "cella_id="+cella_dest,
  dataType: "html",
  success: function(data){
    data = jQuery.parseJSON(data);
    var nome = (data.nome);
    var chat = nome.replace(" ","_");
    var link = 'home.php?id_eroe=<?php echo $id_eroe;?>&id=<?php echo $id;?>&chat='+chat+'&cella='+cella_dest;
     $("<div>Vuoi andare a "+nome+" ?</div>").dialog({
      buttons: {
       "Ok": function() {
       //posizione corrente
       var attuale = document.getElementById('attuale');
       $(this).dialog("close");
       $('#attuale').animate({"top":y.top,"left":y.left}, TempoMovimento);
       window.setTimeout(function() {
       window.location.href = link;
       }, TempoMovimento);
       },
       "Cancel": function() {
       $(this).dialog("close");
       }
      }
     });
     
     document.getElementsByName('tipologia')[0].value = (data.tipologia);
     document.getElementsByName('nome')[0].value = (data.nome);
     document.getElementsByName('descrizione')[0].value = (data.descrizione);
     if(data.chat_iniziale == 'sì')
     {
      $('#chat_iniziale').prop('checked',true);
     };
     
    },
  error: function(){alert("Errore caricamento settore. Riprova più tardi.");}
  }); 
};

Ora vorrei far intervenire delle variabili aggiuntive a seconda della cella nella quale si sta spostando. Per farlo ho pensato di scaricarmi dal database le celle in questione e tramite un ciclo verificare se la posizione del mio puntatore coincide con una di queste. La teoria mi sembra valida ma avrei bisogno di un aiuto per capire il codice.
Per esempio non so se durante l'animazione possa fare un semplice .position(). Colloco il comando tra l'animazione e il Timeout? oppure devo racchiudere animazione e position in una nuova funzione?

Altra cosa, otterei un array delle celle in questione che posso convertire in Json ma come le ciclo in Jquery? posso usare un semplice .each() ad esempio:

codice:
$(data.cella_id).each(function(i){
.....
});
Grazie mille