gpt4 book ai didi

actionscript-3 - 不使用 hittest 对象的 AS3 视线。

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:35:54 27 4
gpt4 key购买 nike

我正在做一个游戏项目,我正在研究游戏的 AI 方面。我希望敌人的物体在看到敌人时开始瞄准并向玩家射击,我看到这篇文章是为了做到这一点: http://www.emanueleferonato.com/2007/04/29/create-a-flash-game-like-security-part-2/

我的问题是,你可以在不使用实际线路的情况下做同样的事情吗?例如,您可以使用 HitTest 点并基本上定义一条线吗?或其他一些无需实际将对象放在舞台上的方法。

我正在努力使事情尽可能高效,并且尽可能不想使用这种方法。如果您有一些建议、代码或指向有用资源的链接,我将不胜感激!

最佳答案

只用计算,不用线

这是重要的代码

dist_x = _root.hero._x-_x;
dist_y = _root.hero._y-_y;
dist = Math.sqrt(dist_x*dist_x+dist_y*dist_y);
angle = Math.atan(dist_y/dist_x)/(Math.PI/180);
if (dist_x<0) {
angle += 180;
}
if (dist_x>=0 && dist_y<0) {
angle += 360;
}
wall_collision = 0;
for (x=1; x<=dist; x++) {
point_x = _x+x*Math.cos(angle*Math.PI/180);
point_y = _y+x*Math.sin(angle*Math.PI/180);
if (_root.wall.hitTest(point_x, point_y, true)) {
wall_collision = 100;
break;
}
}

如果 wall_collision = 100,则玩家在警察的视线范围内。不过,我只是为此使用 bool 值。

关于actionscript-3 - 不使用 hittest 对象的 AS3 视线。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7619257/

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