我正试图实现游戏控制,这将改变移动方向的单元格 。所以,如果我做了正确的刷卡它转向右侧,如果我做下滑刷它转向下行方向等。在不中断触摸的情况下检测2次刷卡
这是cocos2d游戏,我使用CCNode+SFGestureRecognizers
与UISwipeGestureRecognizer
。
在现在我有未来实现它
UISwipeGestureRecognizer *rightSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleRightSwipe:)];
[self addGestureRecognizer:rightSwipeGestureRecognizer];
rightSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionRight;
rightSwipeGestureRecognizer.delegate = self;
[rightSwipeGestureRecognizer release];
UISwipeGestureRecognizer *upSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleUpSwipe:)];
[self addGestureRecognizer:upSwipeGestureRecognizer];
upSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionUp;
upSwipeGestureRecognizer.delegate = self;
[upSwipeGestureRecognizer release];
UISwipeGestureRecognizer *leftSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleLeftSwipe:)];
[self addGestureRecognizer:leftSwipeGestureRecognizer];
leftSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionLeft;
leftSwipeGestureRecognizer.delegate = self;
[leftSwipeGestureRecognizer release];
UISwipeGestureRecognizer *downSwipeGestureRecognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleDownSwipe:)];
[self addGestureRecognizer:downSwipeGestureRecognizer];
downSwipeGestureRecognizer.direction = UISwipeGestureRecognizerDirectionDown;
downSwipeGestureRecognizer.delegate = self;
[downSwipeGestureRecognizer release];
但问题是,认识到以下的姿态,你需要从屏幕上抬起手指。如果您在第一次滑动之后不抬起手指,则只会识别第一次滑动。
在现在:
如何应该是:
什么是最好的方法呢?谢谢!
我不熟悉cocos2d的,但听起来好像你会更好,自己跟踪接触和通过跟踪先前的x的确定的方向, y和当前的x,y。轻扫手势通常是一个固定的循环手势(您只需执行一次),并且不会触发连续运动(否则所有操作都将是轻扫)。在标准的UIKit中,你有touchesMoved:当触摸在屏幕上移动时被调用的方法。不知道cocos2d是什么,但它可能值得研究。 – nebs