2

我有一个游戏,在屏幕底部绘制了一排卡片。我希望这样,如果用户触摸屏幕并将手向右移动,卡片将向右移动,直到他抬起手为止。然后如果他将手在触摸屏上向左移动,卡片将向左移动,直到他抬起手为止。

我的第一个想法是使用滑动事件。但是在手指松开之前滑动不会给出消息,我希望卡片在手移动并触摸屏幕时移动。

我的想法是获取触摸位置的 x 坐标,如果它大于前一个 x,则将卡片向左移动,否则将它们向右移动。

我从这段代码开始,但有点坚持下一步该做什么,或者我做错了

- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
    NSUInteger touchCount = [touches count];
    NSUInteger tapCount = [[touches anyObject] tapCount];
}
4

1 回答 1

1

您将需要一些其他的触摸委托方法

实现-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event并在该方法内部获取触摸的初始 x 和 y 坐标。将它们保存到类范围的实例变量中。

然后在 touchesmoved 中,比较新 touch 的 x 坐标与 touches 开始时的原始坐标,如果 x < 则向左移动,否则如果 x > 则向右移动。

请注意,touchesMoved:withEvent仅在触摸移动时调用,因此如果用户触摸并向右移动,然后手指保持静止,则不会报告触摸。

您需要实施-touchesEnded:withEvent:-touchesCancelled:withEvent:在触摸结束时拾取。

于 2013-09-13T16:53:23.047 回答