Ich mache ein einfaches Spiel (whack ein Maulwurf), das Spiel funktioniert so: Jedes Mal, wenn Sie den Start-Knopf drücken, wird es 10 Divs in das DOM platzieren. Die divs werden zufällig in das DOM platziert.Überlappende zufällige divs
Mein Problem ist, dass sie sich überlappen und manchmal sind sie außerhalb ihres Containers.
Ich würde gerne wissen, wie kann ich sie zufällig in den Container ohne einander zu überlappen, ich bevorzuge kein Raster zu platzieren sie, ich möchte sie zufällig über den Container verteilt werden.
hier ist die Hauptfunktion:
function randomPos(size){
var result = new Array();
var height = (document.getElementById('field').clientHeight);
var width = document.getElementById('field').clientWidth;
for (var i = 0; i < size; i++) {
var obj = {};
var posY = Math.floor(Math.random() * height);
var posX = Math.floor(Math.random() * width);
if (result.length == 0){
obj.x = posX;
obj.y = posY;
result.push(obj);
}
else{
var flag = true;
for (var j = 0; j < i && flag; j++){
if (result[j].y == posY && result[j].x == posX){
flag = false;
}
}
if(flag){
obj.x = posX;
obj.y = posY ;
result.push(obj);
}
else{
i--;
}
}
}
return result;
}
hier ist ein jsfiddle
Sie würden den gesamten Bereich zu bestimmen, wollen von Bildschirm Platz von einem div eingenommen. Wenn ein div 100x100 ist, sollten Sie diesen Bereich des Bildschirms als Option bei der Erzeugung neuer divs im Wesentlichen blockieren. –
Können Sie mit Einzelheiten darüber, wie es praktisch geht, ausarbeiten? –