Sto creando un gioco di addizione e sottrazione in cui una somma viene generata in modo casuale e visualizzata nella parte superiore del contenitore. I numeri quindi si animano dal basso verso l'alto e l'idea è di fare clic su quella corretta.Prevenzione degli elementi sovrapposti durante l'animazione
I numeri hanno una posizione "x" casuale all'inizio e quindi si animano verso l'alto alla stessa velocità.
Il problema che sto avendo è che quando il programma è in esecuzione gli elementi a volte possono sovrapporsi perché a loro viene data una posizione "x" simile all'inizio.
Ho bisogno di dire al programma di non dare la stessa posizione "x" fino a quando l'elemento che lo utilizza è abbastanza lontano sullo schermo affinché non si sovrappongano.
Il problema è nel momento peggiore all'inizio del gioco.
Ecco il codice in questione ...
var currentMoving = [];
function moveRandom(id) {
// Mark this one as animating
currentMoving.push(id);
var cPos = $('#container').offset();
var cHeight = $('#container').height();
var cWidth = $('#container').width();
var bWidth = $('#' + id).width();
var bHeight = $('#' + id).css('top', '395px').fadeIn(100).animate({
'top': '-55px'
}, AnimationSpeed,'linear').fadeOut();
maxWidth = cPos.left + cWidth - bWidth;
minWidth = cPos.left;
newWidth = randomFromTo(minWidth, maxWidth);
$('#' + id).css({
left: newWidth
}).fadeIn(100, function() {
setTimeout(function() {
$('#' + id).fadeOut(10);
// Mark this as no longer animating
var ix = $.inArray(id, currentMoving);
if (ix !== -1) {
currentMoving.splice(ix, 1);
}
window.cont++;
}, 100);
});
}
Ecco un violino - http://jsfiddle.net/pUwKb/68/
È ancora in corso anche se @DhruvPathak – sMilbz
@sMilbz vedere la mia modifica. – DhruvPathak
Questo sembra fantastico - Esattamente quello che volevo. L'unico problema è che a volte se guardi da vicino puoi vedere che ci sono dei numeri sopra ad altri @DhruvPathak – sMilbz