首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GameplayKit:对GKAgent的微调控制

GameplayKit:对GKAgent的微调控制
EN

Stack Overflow用户
提问于 2015-09-09 23:52:58
回答 1查看 802关注 0票数 2

我正在使用spritekit测试gameplaykit。我已经向我的GKEntity添加了一个GKAgent,并且我正在通过在触摸位置创建一个endAgent来让我的实体寻找我的触摸。

这很好用。代理自然地移动,追逐我的触觉。然而,我有两个问题..

当代理到达其目标时,我如何停止它。智能体将永远绕来绕去,试图准确地落在点上。我已经尝试过agent.behavior.removeAllGoals(),我想这会立即停止代理,因为它没有目标。但是什么也没发生。

第二个问题是如何微调移动。对于导弹追逐飞机之类的东西来说,智能体将是理想的选择。问题是,当它到达目标时,它会减速。运动模式是如此的具体。我尝试过使用massmaxSpeed maxAcceleration等属性。我遗漏了什么吗?

EN

回答 1

Stack Overflow用户

发布于 2015-12-15 07:08:30

API描述了智能体的动机,但在某些方面,它们的行为更像物理体-也就是说,它们遵循牛顿第一定律并保持运动,除非“有动机”改变它们的速度或方向。

要在代理到达其目标时停止代理,您需要将停止作为其主要目标。检查每一帧你到目标的距离,当你“足够近”时(对于你的游戏来说,这是什么),拿出寻找目标,并用一个速度为零的目标速度目标代替它。

对于“热追踪导弹”行为,您可以尝试使用intercept-agent目标而不是搜索智能体目标,并改变预测时间,以了解这如何影响追逐速度。(一旦导弹离飞机足够近,你可能不需要让它停留在场景中,所以如果你可以将减速限制在“爆炸距离内”,你可以忽略它。)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32484157

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档