![]() |
1
1
不要使用布尔值,而是使用一个属性来存储您选择的字符:
选择角色时,只需更新该属性:
这样,您的所有代码都只需要引用它,并且可以更加通用:
|
|
2
1
您正在寻找的是所谓的状态机或状态设计模式。因此,无论选择什么角色,他们都使用类似的方法: 向左移动() , 向右移动() 和 上移() . “四人帮”论国家设计模式: 允许对象在其内部状态更改时更改其行为。对象将显示为更改其类。 因此,您所提供的代码的一个基本思想是对两个字符使用相同的状态机,并从该状态机中操作正确的对象。以下是如何做到这一点的示例: 创建状态机!:
现在,在处理角色移动时,最好的部分是让状态机处理,而不是为正确的玩家使用所有布尔值。因此,当选择角色时,我们可以创建一个新的状态机:
现在,您可以只使用一个移动功能来处理键盘输入
最后,在更新函数中(无论是事件帧还是类似的内容),调用
这应该会删除所有键布尔值,并让状态机处理所有输入。 希望这有帮助! |
![]() |
nabster023 · 拉伸和旋转电影剪辑而不失真 6 年前 |
![]() |
Dimentio · 无限循环(动作脚本3) 7 年前 |
![]() |
AeroKLiam · AS3-使用组合框进行真/假测验 7 年前 |
![]() |
nabster023 · 自动检测AS3中输入文本字段的值 7 年前 |
![]() |
TheGunners · 查找两条圆弧之间的交点 7 年前 |