私は、子供たちが質問に従って正しい数字を打たなければならない新しい「もぐらたたき」スタイルのゲームを作成しています。タイマーがあり、正解と不正解を数え、ゲームが開始されると、設定された時間にコンテナにランダムに表示される「キャラクター」と呼ばれる多数の div があります。
私が抱えている問題は、完全にランダムであるため、「文字」が互いに重なって表示されることがあります。コンテナ内の設定された場所に表示され、表示されたときに重ならないように整理する方法はありますか。
ここに、div をコンテナーにマップするコードがあります。
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/