我有一个游戏,屏幕底部有一排牌。我希望如此,如果用户触摸屏幕并向右移动他的手,那么卡片将向右移动直到他举起他的手。然后,如果他将手向左移动到触摸屏上,卡片将向左移动直到他举起手。
我的第一个想法是使用滑动事件。但是,在手指松开之前,滑动不会发出消息,我希望在手移动并触摸屏幕时移动卡片。
我的想法是获取触摸位置的x坐标,如果它大于前一个x,则向左移动卡片,否则向右移动。
我开始使用这段代码,但有点坚持下一步做什么,或者说我做错了
- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSUInteger touchCount = [touches count];
NSUInteger tapCount = [[touches anyObject] tapCount];
}
答案 0 :(得分:1)
您需要一些其他触摸委托方法
实施-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
并在该方法中获取触摸的初始x和y坐标。将它们保存到类范围的实例变量中。
然后在移动的触摸中,将新触摸的x坐标与触摸开始的原始坐标进行比较,如果x<然后向左移动,否则如果x>然后向右移动。
请注意,touchesMoved:withEvent
仅在触摸移动时被调用,因此如果用户触摸并向右移动,然后将手指静止,则不会报告触摸。
当触摸结束时,您需要实施-touchesEnded:withEvent:
和-touchesCancelled:withEvent:
来接听。