0

我正在开发一个跷跷板游戏,我需要一些帮助。

现在,我在 HTML5 画布上随机生成 10 个点的坐标。

假设画布为 500 像素 x 500 像素 - 我已将点生成在 100 到 400 之间,从而将它们的位置集中在远离画布边界的位置。

为此,我使用函数randomFromInterval() - xwxh表示画布的高度和宽度。

从这 10 个点(每个点在画布上都有它们的 x 和 y 坐标): - 5 个点将是十字架的中心 - 5 个点将是孔的中心

当球(用户导航的)越过十字架时,他将获得积分,如果他掉进洞里,他就会失去。

这是我的问题:

由于数字的随机性 - 一些坐标太接近其他坐标 - 所以我可以在十字架上画一个“洞”的一部分。

现在,一些随机数可能是:[1, 5] 和 [2, 6]

如果我在 x = 1 和 y = 5(画布上的坐标)处绘制十字,并在 x = 2 和 y = 6 处绘制,这两个将重叠。

这是代码:

function randomFromInterval(from,to){
    return Math.floor(Math.random()*(to-from+1)+from);
}

function crossesAndHoles(){
        var crossx, crossy, col;
        for(var i=0; i<=10; i++){
            crossPos = [];
            crossx = randomFromInterval(100, xw-100); // the xw  is the width of the canvas
            crossy = randomFromInterval(100, xh-100); // the xh is the height of the canvas
            col = checkcollision(crossx, crossy, xdim); // here I check the collision with the maze which is drew on the canvas
            if((crossx != crossy) && col == 0){
                crossPos.push(crossx);
                crossPos.push(crossy);
                crossesPos.push(crossPos);
            }
        }
    }

有任何想法吗?

4

1 回答 1

1

对于生成的每个新坐标,您可以检查其与先前生成的坐标的距离……如果太近,则生成一个新坐标。

于 2013-08-13T16:43:30.507 回答