| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -5,7 +5,9 @@ | |||
| 5 | 5 | 隆有走动,攻击,防御,跌倒,跳跃等等多种状态,而这些状态之间既有联系又互相约束。<br /> | |
| 6 | 6 | 比如跳跃的时候是不能攻击和防御的。跌倒的时候既不能攻击又不能防御,而走动的时候既可以攻击也可以跳跃。<br /> | |
| 7 | 7 | 要完成这样一系列逻辑, 常理下if else是少不了的. 而且数量无法估计, 特别是增加一种新状态的时候, 可能要从代码的第10行一直改到900行. <br /> | |
| 8 | - '''javascript | ||
| 8 | + | ||
| 9 | + | ||
| 10 | + ```javascript | ||
| 9 | 11 | if ( state === 'jump' ){ | |
| 10 | 12 | if ( currState === 'attack' || currState === 'defense' ){ | |
| 11 | 13 | return false; | |
@@ -15,8 +17,11 @@ if ( state === 'jump' ){ | |||
| 15 | 17 | return true; | |
| 16 | 18 | } | |
| 17 | 19 | } | |
| 20 | + | ||
| 18 | 21 | ``` | |
| 22 | + | ||
| 19 | 23 | 为了消灭这些if else, 并且方便修改和维护, 我们引入一个状态类. | |
| 24 | + | ||
| 20 | 25 | ```javascript | |
| 21 | 26 | var StateManager = function(){ | |
| 22 | 27 | var currState = 'wait'; | |
@@ -46,4 +51,5 @@ var StateManager = function(){ | |||
| 46 | 51 | } | |
| 47 | 52 | var stateManager = StateManager(); | |
| 48 | 53 | stateManager.changeState( 'defense' ); | |
| 49 | - ``` | ||
| 54 | + ``` | ||
| 55 | + Edit By [MaHua](http://mahua.jser.me) | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments