1

我正在 iOS 平台上开发基于 cocos2d-x 的游戏。

在我的游戏中,我需要检测特定精灵边界框上的圆形手势。当触摸事件在 http://blog.federicomestrone.com/2012/01/31/creating-custom-gesture-recognisers-for-ios/结束时,我有检测圆圈的解决方案

但是,需要在 onTouchMove 期间检测到圆,而不是 onTouchEnded。另外,我需要知道创建圆的方向,即顺时针或逆时针。并在手指移动过程中改变方向。另一个要求是计算手指移动时完成的圈数。

在这种圆形手势检测方面需要一些帮助。提前致谢。

4

1 回答 1

0

在触摸移动事件期间,您可以使用以下(伪代码)确定从精灵中心到触摸位置的角度:

angle = atan2(touch.y - spriteCenter.y, touch.x - spriteCenter.x);

然后找到自上次测量以来的角度偏移并将其添加到运行计数中:

angleOffset = atan2(sin(angle-lastAngle), cos(angle-lastAngle));
angleRotated += angleOffset;

|角度旋转| 将测量发生了多少次革命以及它们发生的方向。

您可能还需要考虑触摸和精灵之间的距离,以确保形状是圆形的。

于 2013-11-04T10:19:42.740 回答