Я создаю новую игру стиля "whack-a-mole", в которой дети должны набирать правильные цифры в соответствии с вопросом. Пока все идет хорошо, у меня есть таймер, подсчитывают правильные и неправильные ответы, и когда игра запущена, у меня есть несколько div, называемых "символами", которые появляются в контейнере случайным образом в заданное время.
Проблема, с которой я столкнулась, состоит в том, что, поскольку она полностью случайна, иногда "символы" появляются друг с другом. Есть ли способ организовать их, чтобы они отображались в заданных местах в контейнере и не перекрывались, когда они появляются.
Здесь у меня есть код, который отображает divs в контейнер.
function randomFromTo(from, to) {
return Math.floor(Math.random() * (to - from + 1) + from);
}
function scramble() {
var children = $('#container').children();
var randomId = randomFromTo(1, children.length);
moveRandom('char' + randomId);
}
function moveRandom(id) {
var cPos = $('#container').offset();
var cHeight = $('#container').height();
var cWidth = $('#container').width();
var pad = parseInt($('#container').css('padding-top').replace('px', ''));
var bHeight = $('#' + id).height();
var bWidth = $('#' + id).width();
maxY = cPos.top + cHeight - bHeight - pad;
maxX = cPos.left + cWidth - bWidth - pad;
minY = cPos.top + pad;
minX = cPos.left + pad;
newY = randomFromTo(minY, maxY);
newX = randomFromTo(minX, maxX);
$('#' + id).css({
top: newY,
left: newX
}).fadeIn(100, function () {
setTimeout(function () {
$('#' + id).fadeOut(100);
window.cont++;
}, 1000);
});
У меня есть скрипка, если это помогает. http://jsfiddle.net/pUwKb/8/