Я создаю игру сложения и вычитания, где сумма генерируется случайным образом и отображается в верхней части контейнера. Затем цифры оживляют снизу вверх, и идея состоит в том, чтобы щелкнуть по правильному.
Числам присваивается случайная "х" позиция в начале и затем анимируется сверху с той же скоростью.
Проблема, с которой я сталкиваюсь, заключается в том, что при запуске программы элементы иногда могут перекрываться, потому что им дается аналогичная позиция "x" в начале.
Мне нужно сказать программе, чтобы она не давала одинаковую позицию "x", пока элемент, использующий ее, не достаточно, чтобы экран не перекрывался.
Проблема заключается в худшем, когда игра начинается.
Вот соответствующий код...
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);
});
}
Вот скрипка - http://jsfiddle.net/pUwKb/68/