比如,现在点击屏幕,需要控制人物跳到某个格子上,过程有一个缓动动画假如需要1秒,在缓动动画完成后,会有一个回调设置一些状态信息,比如用户当前在哪个格子,是否失败等等。
现在碰到问题是,用户可以不停的点击屏幕,这样在上一个回调还没执行的时候,又开始下一次跳跃了,这种场景一般是怎么解决的?直接限制用户在回调完成前不让点击?
比如,现在点击屏幕,需要控制人物跳到某个格子上,过程有一个缓动动画假如需要1秒,在缓动动画完成后,会有一个回调设置一些状态信息,比如用户当前在哪个格子,是否失败等等。
现在碰到问题是,用户可以不停的点击屏幕,这样在上一个回调还没执行的时候,又开始下一次跳跃了,这种场景一般是怎么解决的?直接限制用户在回调完成前不让点击?
人物在进行某种动作时,可以认为他进入一种状态,在此状态下不接受任何指令。
最简单的实现方式是加一个标志位 _jumping,收到输入事件时进行判断。
如果你的人物行为很多,可以学习下 状态模式,在 JumpingState 时 不接收输入事件
如果更复杂,再去学习下 有限状态机,可以更好的管理角色的行为切换和操作某种状态下的特殊行为。
多谢 了解了。其实就是 动作要让他顺序执行,不能在回调执行完之前 执行别的操作。
那就很容易了,可以用状态控制,或者用一个队列存储用户操作,在动作执行完之后去队列里取。