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

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.

主站蜘蛛池模板: 清河县| 南部县| 从江县| 深水埗区| 天柱县| 英德市| 兰坪| 额尔古纳市| 大方县| 米脂县| 高陵县| 天气| 曲阳县| 彩票| 同江市| 宣城市| 健康| 利川市| 萍乡市| 阿拉尔市| 新河县| 漯河市| 清水河县| 子长县| 洪湖市| 垣曲县| 兴文县| 泽库县| 高州市| 同江市| 大足县| 四子王旗| 原阳县| 阜城县| 睢宁县| 阿坝县| 英超| 长岭县| 洪泽县| 福鼎市| 双鸭山市|