首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Cocos2d中执行AI (替换更新方法)

如何在Cocos2d中执行AI (替换更新方法)
EN

Game Development用户
提问于 2012-12-31 00:35:07
回答 1查看 1K关注 0票数 1

在Cocos2d中运行AI的最佳方法是什么?

我已经有我的人工智能实现了。通常情况下,我会在我的游戏循环中执行AI,检查上次AI执行已经过去了多长时间,以及在当前情况下是否可以执行它,然后最后执行它。

据我所知,Cocos2d删除了GameLoop的概念,并用操作代替了它,这很棒,但我不知道如何最好地利用它们来接管这一AI执行。我目前的解决办法是创建一个ccSequence,1)执行AI,2)执行另一个执行相同事情的ccSequence (本质上是一个操作循环)。我不喜欢的是,所有的行动都必须是时间,需要精确的行动.但我可以解决这个问题。

我不喜欢的另一件事是,虽然这对人工智能有好处.那渲染动作呢。我可以很容易地为我呈现我的行动的结果,但是另一个AI的行动的结果呢?比如另一个人工智能杀了我。我必须等待我的动作序列执行,然后我才能检查我是否出了什么事,但是如果我的动作是10秒长.在我意识到我应该死之前我站在那里吗?

我想现在我可以设置多个动作序列了。一个给我的人工智能。一份给我的最新消息。但是在我走到这条路太远之前,动作序列真的是的一个很好的替代品吗?

EN

回答 1

Game Development用户

回答已采纳

发布于 2012-12-31 03:14:37

我假设这是Cocos2d-iphone分支。

Cocos2d允许您安排一个发生在每一个帧上的更新,就像游戏循环一样。如果您将此更新安排在您的场景或某个始终存在的基本层/节点上,您可以首先仔细执行您的AI操作,然后检查/更新您的游戏状态。我发现这是一个非常好的地方来管理人工智能和游戏状态。

或者,您可以将更新安排在特定的时间间隔,而不是每一帧,还可以指定更新回调的优先级,以便确保更新方法在当前框架期间和呈现之前或之后运行。

关于计划更新/选择器的文档

就我个人而言,我在计划的更新中做所有的游戏逻辑和AI,而不是动作(除了少数例外,比如在动作完成后改变状态)。诚然,你可以管理一个动作集合,如果必要的话,你可以过早地停止它们,但是有时候它确实会变得有点痛苦,你的游戏的流畅性可能会受到影响。对于我自己来说,我经常使用自定义动作来执行相对的动作/更改,而不是绝对的,这样它们就可以被组合和取消,而不会破坏视觉效果。

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

https://gamedev.stackexchange.com/questions/46526

复制
相关文章

相似问题

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