2013-04-21 66 views
0

这是我第一次在这里发表一个问题,经过很长一段时间的努力,并且无法自己解决,我决定来请求你的帮助。如何通过触摸移动和跳转字符并轻扫?

问我的问题,我需要先解释我的情况。

我正在用Starling和Citrus Engine使用Actionscript3和AIR SDK编写iPad游戏。 基本上我的角色所做的就是左右移动,游戏中的重力始终指向“向下/向地面”(对玩家来说),玩家需要旋转iPad来解决难题,并在整个平台上前进。

要移动角色,用户需要水平触摸(并按住)任意一半的屏幕(如果设备旋转,它将成为屏幕的顶部/底部一半),并使用户跳转角色需要向上方向(屏幕上的任何位置)进行轻扫手势。

这个控件的主要问题是,例如,如果我使用我的右手拇指将字符移动到右侧并且需要跳转,那么最舒服的方法就是使用我的左手拇指在屏幕上滑动并使其跳跃。只要我这样做,我的角色开始向左移动,因为我的左手拇指触摸屏幕的左半边。

我需要的是一种可以这种方式工作的方法(能够像本例中一样移动和跳转)。 我尝试了很多方法,忽略触摸ID,尝试了不同的触摸事件类flash/starling,甚至是一些第三方的手势API。

我认为我真正需要帮助的是逻辑,而不是编码。

我只是无法让它顺利运作。 请帮忙吗?

+1

我想你可能想要考虑试图跟踪一组触摸的“速度”,以确定动作是简单地移动角色还是在方向上施加跳跃力(并且可能基于速度)的刷卡。如果您使用字典或其他对象为每个TouchEvent ID存储数组,则应该能够以最近手指所有点的数组形式构建一个简短历史记录,使用这个数组,您应该能够计算一个“速度”。如果速度高于某个阈值,那么如果不是开始步行运动,则是跳跃。 – shaunhusain 2013-04-21 09:38:24

+0

本着@shaunhusain所说的相同精神,只需使用一个方向创建一个简单的测试应用程序,并通过记录和试验找到适当的算法。只有将它移回到您的真实应用程序。当然可以找到解决方案。为了将来尝试在这里建立点,所以你可以在未来提供这种问题的赏金。 – 2013-04-21 12:39:16

回答

0

谢谢@shaunhusain和@David H, 对不起,很长一段时间回复给你,我真的忙于其他功能的工作。 一旦我深入了解它,我就能够按照自己的想法努力工作,完全按照你们的建议进行操作。