我有一张9600x9600的地图,上面满是48x48的图块,我想将96x96的对象放置到随机点,我可以得到一个随机的点并将对象放置在此处,但我不知道如何正确地将它们放置在边缘。
It looks like this when placed near the edges(放置红色框的地方)
我希望将它们放置在here上,以便它位于48x48x48区域的中心
我使用此功能获得随机位置:
this.playArea = [9600, 9600]
getRandomPosition(size) {
const x = getRandomInt(0, this.playArea[0] / size);
const y = getRandomInt(0, this.playArea[1] / size);
return { x: x * size, y: y * size };
}
position = getRandomPosition(48)
我可能只需要向函数添加一个简单的数学运算,但是我不知道什么。
答案 0 :(得分:0)
您遇到的问题是由于允许值太靠近边缘而引起的。为了补救,您需要像这样通过widthOfGrid - widthOfBox
和heightOfGrid - heightOfBox
:
this.playArea = [9600, 9600]
getRandomPosition(size) {
const x = getRandomInt(1, (this.playArea[0] - size) / size);
const y = getRandomInt(1, (this.playArea[1] - size) / size);
return { x: x * size, y: y * size };
};
那应该只产生直到边缘减去size
之一的数字。