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

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.

主站蜘蛛池模板: 同德县| 嵊州市| 延边| 清苑县| 雷州市| 临夏市| 武乡县| 安达市| 台山市| 阿鲁科尔沁旗| 旺苍县| 盘锦市| 苍梧县| 巴东县| 嘉荫县| 崇义县| 肇东市| 津市市| 綦江县| 乌兰县| 沈阳市| 长葛市| 兴安县| 商洛市| 信宜市| 松江区| 广宗县| 塔河县| 沙坪坝区| 应用必备| 都兰县| 平顶山市| 寿光市| 铅山县| 桑植县| 连平县| 来宾市| 台北市| 万荣县| 郎溪县| 松原市|