gpt4 book ai didi

flash - 在锥形视野中获得随机点

转载 作者:行者123 更新时间:2023-12-04 06:18:18 24 4
gpt4 key购买 nike

我试图让我的游戏角色(鱼)只在他们当前的视锥能够“看到”的地方去一个新生成的目的地,因此我画了一个三角形 MC 使它成为他们的视锥,然后从那里生成锥体区域内的随机点,我使用的代码如下所示,它不断返回我舞台的顶部坐标,为什么会这样?我已经做了一个 localToGlobal 并且它仍然是一样的

public function getRandomDestination():void
{
//Math.floor(Math.random()*(1+High-Low))+Low;
var conePoint:Point = new Point(Math.floor(Math.random() * cone.width), Math.floor(Math.random() * cone.height));
_destinationX = localToGlobal(conePoint).x;//Math.floor(Math.random()*(1+_maxX-100)+100);
trace(_destinationX);
_destinationY = localToGlobal(conePoint).y; //Math.floor(Math.random() *(1+_maxY-100)+100);
trace(_destinationY);
}

最佳答案

首先选择一个随机角度(在指定的半径内)然后使用该角度选择与鱼的随机距离不是更容易吗?

就像是:

function selectPosition(maxAngle:Number, maxDistance:Number):Object
{
var base:Number = rotation + (-(maxAngle/2) + Math.random()*maxAngle);
var radians:Number = base / 180 * Math.PI;

var dist:Number = Math.random()*maxDistance;

return {
x: Math.cos(radians) * dist,
y: Math.sin(radians) * dist
};
}

var result:Object = selectPosition(30, 100);
trace(result.x, result.y);

这将返回一个包含落在指定角度和距离内的 x 和 y 点的对象。

上面的内容可以像这样直观地表示:

enter image description here

关于flash - 在锥形视野中获得随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6952018/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com