通过UIPanGestureRecognizer 获得velocity & direction

我的代码里是这样用的:

else if (recognizer.state == UIGestureRecognizerStateChanged)
{

CGPoint velocity = [recognizer velocityInView:recognizer.view];
SpriteAct act = lastAct;
//NSLog(@"velocity x=%f, y=%f", velocity.x, velocity.y);
if (fabs(velocity.x) > fabs(velocity.y))
{
//left or righ
if(velocity.x > 0)
{
//NSLog(@"gesture went left");
act = ActLeftDirection;
}
else
{
//NSLog(@"gesture went right");
act = ActRightDirection;
}
}
else if( fabs(velocity.x) < fabs(velocity.y))
{
//up or down.
if (velocity.y>0)
{
//NSLog(@"gesture went up");
act = ActUpDirection;
}
else
{
//NSLog(@"gesture went down");
act = ActDownDirection;
}
}
else
{
#ifdef DYNAMIC_CALC_DIRECTION
//last act.
if(velocity.x*lastGestureVelocity.x + velocity.y*lastGestureVelocity.y > 0)
{
//NSLog(@"gesture went in the same direction");
}
else
{
//NSLog(@"gesture went in the opposite direction");
}
#else
act = lastAct;
#endif
}

对于几种UIGestureRecognizer的用法请参考下面的链接:
http://efreedom.com/Question/1-5187502/Can-Capture-Direction-Panned-Using-UIPanGestureRecognizer
http://www.raywenderlich.com/2343/how-to-drag-and-drop-sprites-with-cocos2d
http://ddesktop.googlecode.com/svn-history/r13/trunk/DDesktopClient/Classes/RemoteViewController.m
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值