官术网_书友最值得收藏!

Choosing transitions

At this point, we have to make some design and logic decisions regarding the way our states will flow into each other. When we map out these transitions, we also want to keep in mind the conditions that trigger the transitions to make sure they are logical and work from a design-standpoint. Out in the wild, when you're applying these techniques on your own, different factors will play into how these transitions are handled. In order to best illustrate the topic at hand, we'll keep our transitions simple and logical:

  • Patrol: From patrol, we can transition into chasing. We will use a chain of conditions to choose which state we'll transition into, if any. Can the enemy tank see the player? If yes, we go to the next step; if not, we continue with patrolling.
  • Chase: From this state, we'll want to continue to check whether the player is within sight to continue chasing, close enough to shoot, or completely out of sight—that would send us back into the Patrol state.
  • Shoot: As earlier, we'll want to check our range for shooting and then the line of sight to determine whether or not we can chase to get within the range.

This particular example has a simple and clean set of transition rules. If we connect our states accordingly, we'll end up with a graph looking more or less similar to this one:

Keep in mind that the placement of the nodes is entirely up to you, and it does not affect the functionality of the state machine in any way. You can try to place your nodes in a way that keeps them organized so that you can track your transitions visually.

Now that we have our states mapped out, let's assign some behaviors to them.

主站蜘蛛池模板: 奈曼旗| 松溪县| 东阳市| 怀化市| 城口县| 恩施市| 长海县| 娱乐| 德钦县| 新建县| 大港区| 禄丰县| 舒城县| 嘉鱼县| 朔州市| 东平县| 保亭| 姜堰市| 南丹县| 沙雅县| 游戏| 通榆县| 涪陵区| 恭城| 康平县| 郎溪县| 清新县| 庆阳市| 黑龙江省| 象山县| 卓资县| 康马县| 大邑县| 胶州市| 浙江省| 高碑店市| 克拉玛依市| 昔阳县| 广安市| 吉林省| 布尔津县|