iOS / Cocos2d - 手指移动时的圆形检测

时间:2013-10-10 05:35:55

标签: ios iphone objective-c cocos2d-x

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

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

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

需要一些这种圆圈手势检测的帮助。 提前谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

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

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

| angleRotated |将测量进行了多少次革命以及它们发生的方向。

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