游戏地址: http://www.alloyteam.com/2012/05/html5-streetfighter-demo/主机:移动: W: 上, D: 前, A: 后, S:下攻击: J: 轻拳, K: 重拳, U: 轻腿, I: 重腿特殊技能: 下→前→拳: 波动拳, 下→后→腿:旋风腿, 前→下→前→拳:升龙拳副机(小键盘):移动: ↑: 上, ←: 前, →: 后, ↓:下攻击: 1: 轻拳, 2: 重拳, 4: 轻腿, 5: 重腿特殊技能: 下→前→拳: 波动拳, 下→后→腿:旋风腿, 前→下→前→拳:升龙拳按F2暂停游戏, 1键大战电脑ai, 2键双人对打.
If ( isJump ){If ( move ) return false;}else if( isAttack ){If ( move || jump ) return false;}else if ( fall_down ){If ( move || jump || attack ) return false;}…游戏里的具体逻辑比这复杂的多, 我也想不到得写多少个if else, if else. 闭上眼睛就是if else.现在我是这样实现的. 给每种动作在配置文件里加一个锁. 精灵在动的时候, 总是被它锁住的. 移动的锁是0级, 跳跃是1级, 攻击是2级. 摔倒是3级. 当要执行一个新的动作的时候, 比如攻击的时候突然被踢倒. 会先比较2个动作的锁的级别. 如果后面动作的级别大于之前动作的级别. 就会打破之前的锁, 执行新的动作. 反之会无视新的动作. 比如攻击的时候移动和跳跃都是没用的.