我愿意为Android开发一款足球游戏。
因为人工智能的复杂性,我真的认为我需要使用FSM(有限状态机)而不是怪物开关来设计它。
谷歌搜索我发现了一些用 Java 编写的 FSM,但没有与 Android 明确兼容:我想知道这里是否有人在该平台上使用过 FSM。
Android 有一个内部分层状态机 (HSM),它与 Android 消息队列集成。
它是内部的,因此您无法从 SDK 显式访问它。
但是,如果您遵循 Apache 2.0 许可证的条款,您可以制作自己的版本。
https://android.googlesource.com/platform/frameworks/base/+/gingerbread-release/core/java/com/android/internal/util/HierarchicalStateMachine.java
编辑:
这个类现在称为StateMachine。
在 Android 中使用并由 Google 提供的这种状态机 (FSM) 实现似乎是一个不错的选择。你可以在 Github 上获得它。
您可以使用StateMachine
该类来定义状态,初始状态,您可以在进入或退出状态时执行任务,您可以发送事件和延迟事件以实现例如超时。
我没有找到很多其他替代方案,但是这个实现包含了我正在寻找的所有功能。这是 Android 项目的一部分,所以我认为这是经过良好测试的。希望这有帮助。
你可以试试我的带有 DSL 的 Kotlin 库来创建状态机。它在 Android 项目中帮助我。
另一个开源选项是@doridori的Engine