我有一个游戏,在屏幕底部绘制了一排卡片。我希望这样,如果用户触摸屏幕并将手向右移动,卡片将向右移动,直到他抬起手为止。然后如果他将手在触摸屏上向左移动,卡片将向左移动,直到他抬起手为止。
我的第一个想法是使用滑动事件。但是在手指松开之前滑动不会给出消息,我希望卡片在手移动并触摸屏幕时移动。
我的想法是获取触摸位置的 x 坐标,如果它大于前一个 x,则将卡片向左移动,否则向右移动。
我开始使用这段代码,但有点坚持下一步该做什么,或者我做错了
- (void) touchesMovedNSSet *)touches withEventUIEvent *)event {
NSUInteger touchCount = [touches count];
NSUInteger tapCount = [[touches anyObject] tapCount];
}
Best Answer-推荐答案 strong>
您将需要一些其他的触摸委托(delegate)方法
实现 -(void)touchesBeganNSSet *)touches withEventUIEvent *)event 并在该方法中获取触摸的初始 x 和 y 坐标。将它们保存到类范围的实例变量中。
然后在触摸移动时,将新触摸的x坐标与触摸开始时的原始坐标进行比较,如果x<则向左移动,否则如果x>则向右移动。
请注意,touchesMoved:withEvent 仅在触摸移动时调用,因此如果用户触摸并向右移动,然后手指保持静止,则不会报告触摸。
您需要实现 -touchesEnded:withEvent: 和 -touchesCancelled:withEvent: 以在触摸结束时拾取。
关于ios试图左右拖动图像,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/18789425/
|