我正在iOS平台上开发基于cocos2d-x的游戏。
在我的游戏中,我需要在特定精灵的边界框上检测圆形手势。 当触摸事件结束时,我有解决方案来检测圆圈 http://blog.federicomestrone.com/2012/01/31/creating-custom-gesture-recognisers-for-ios/
但是,要求在onTouchMove期间检测圆圈而不是onTouchEnded。 另外,我需要知道创建圆的方向,即顺时针或逆时针。手指移动时的方向变化。 另一项要求是计算手指移动时完成的圆圈数量。
需要一些这种圆圈手势检测的帮助。 提前谢谢。
答案 0 :(得分:0)
在触摸移动事件期间,您可以使用以下(伪代码)确定从精灵中心到触摸位置的角度:
angle = atan2(touch.y - spriteCenter.y, touch.x - spriteCenter.x);
然后找到自上次测量以来的角度偏移,并将其添加到正在运行的计数中:
angleOffset = atan2(sin(angle-lastAngle), cos(angle-lastAngle));
angleRotated += angleOffset;
| angleRotated |将测量进行了多少次革命以及它们发生的方向。
您可能还需要考虑触摸和精灵之间的距离,以确保形状为圆形。