如何在y轴上随机放置对象,并使每个对象之间的距离始终大于特定值?

丹麦人阿雅卜

我通过y轴上的for循环放置4个对象。使用以下方法将每个对象随机放置在y轴上:

myObject.y = stage.stageHeight * Math.random();

问题是有时对象彼此之间的距离太远,而有时它们彼此重叠。我想要实现的是在两个对象之间始终保持一定距离。我希望该距离始终大于特定值。我已经尝试了2天,但无法解决。

这是我试图消除重叠的内容:

function createObstacles():void
{
  var currentElements:Array = [];
  var myRect:Obstacle;

    for(var k:int = 0; k < 4; k++)
    {
        myRect = new Obstacle();
        addChild(myRect);
        myRect.x = stage.stageWidth + 30;

        myRect.y = stage.stageHeight * Math.random(); 
        obstacles.push(myRect);
        currentElements.push(myRect);
    }

  checkOverlap(myRect,currentElements);

}

function checkOverlap(rect:Obstacle, elements:Array)
{
   for(var n:uint = 0; n < elements.length; n++)
   {
       if(rect.hitTestObject(elements[n]))
       {
           rect.y = stage.stageHeight * Math.random();
       }
   }
}

元素仍然重叠。关于始终保持两个对象之间的距离,我只是无法解决这个问题。我用谷歌搜索,但没有相关内容返回。任何形式的帮助将不胜感激。

平底锅

您可以根据前一个对象的y值设置对象的y。

函数createObstacles():void {var currentElements:Array = []; var myRect:Obstacle;

var minDistance:int = 5;//the min distance between two objects

var maxDistance:int = 10;//the max distance between two objects.

for(var k:int = 0; k < 4; k++)
{
    myRect = new Obstacle();
    addChild(myRect);
    myRect.x = stage.stageWidth + 30;

    if (k == 0)
    {
        // make sure four objects in one page
         myRect.y = stage.stageHeight/2 * Math.random(); 
    }
    else
    {
       var distance:int = (maxDistance - minDistance)*Math.random() + minDistance;

        myRect.y = obstacles[k - 1].y + distance;
    }
    obstacles.push(myRect);
    currentElements.push(myRect);
}

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在ggplot中重新排列热图的y轴上的对象?

如何仅在x轴上居中放置文本,但如何在pygame中移动y轴?

在y轴上增加文字和标题之间的距离

如何在ggplot中的*旋转* y轴上增加文本和标题之间的距离?

ARKit –如何在QRCode上放置3D对象?

如何在全局轴上向对象添加力?

如何在Rails的url中放置对象值?

如何在pyplot中为每个x值在y轴上绘制平均值

如何在一个轴上随机地在两个方向之间旋转对象?

如何在Matplotlib的Y轴上的每个点之间选择大小?

如何在轴上放置符号?

如何更改pyplot中Y轴上的标签之间的距离?

如何在JS对象之间映射值?

如何在R中更改钢筋和Y轴之间的距离

如何在x和y轴上指定刻度之间的距离?

如何在OpenGL中在对象上放置纹理?

如何在此过滤对象上放置“ .paginate”调用?

如何在跟随鼠标位置的Y轴上锁定的对象上实现平滑移动?

如何在python中调整y轴标签之间的距离

如何在屏幕上居中放置父游戏对象?

如何在两个对象之间匹配值并使用特定值创建新值

如何使mscharts y轴始终达到特定值

如何在portlet jsp上放置html对象?

如何在 Y 轴上旋转对象?

如何在ggplot的双y轴上放置图例

如何获取为每个请求随机生成的 JSON 对象值?

如何用随机值注释每个对象

如何在轴标签上的值之间放置空格

如何使用 Plotly Express 显示 y 轴上的每个值?