当前位置:  开发笔记 > 编程语言 > 正文

我该如何处理AI线程与主游戏循环之间的通信?

如何解决《我该如何处理AI线程与主游戏循环之间的通信?》经验,为你挑选了0个好方法。

我正在研究基于回合制的Java战略游戏(在Android框架中).按照Beginning Android Games中的结构,我有一个渲染线程和一个UI线程.渲染线程重复更新世界状态,然后重绘世界.当用户与屏幕交互时,GUI将动作发送到世界(命令模式).现在我正在添加AI玩家,这是我的计划:

每个AI播放器都有一个在单独的线程上运行的AI.

当世界更新AI时,它会检查是否有待处理的操作.如果是这样,它会执行它.然后它要求AI播放器进行下一步操作.

AI播放器将向AI线程发送动作请求,然后返回.

最终,人工智能将提出一个动作,并将其发布回世界,它将在下次更新时看到它.

两个问题:

1)这个设计看起来好听吗?

2)如何处理与AI线程的通信?如果我有AI线程调用world.queueAction(action),看起来它会工作,但是如果渲染线程调用ai.chooseAction(world)将在渲染线程上运行选择操作,这不是我想要的.

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有