2013-09-13 3 views
2

У меня есть игра, в которой есть ряд карт, нарисованных в нижней части экрана. Я бы так хотел, если бы пользователь коснулся экрана и двинул рукой вправо, карты будут двигаться прямо, пока он не поднимет руку. Затем, если он поместит свою руку на сенсорный экран, карта переместится налево, пока он не поднимет руку.ios Попытка перетащить изображение влево и вправо

Моя первая мысль заключалась в использовании событий салфетки. Но салфетка не даст сообщение, пока палец не будет выпущен, я хочу, чтобы карты двигались, когда рука двигалась и касалась экрана.

Моя идея состояла в том, чтобы получить координату x положения касания и, если она больше, чем предыдущий x, переместите карты влево, а затем переместите их вправо.

Я начал с этим блоком кода, но вроде застрял на том, что делать дальше, или, может быть, я делаю это все неправильно

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

Звучит как хороший план для меня Тед, вы его протестировали? - В чем именно вы застряли? – Wez

+0

попытка не вопрос – Shubhank

ответ

1

Вы будете нуждаться в некоторых других методах сенсорного делегата

Внесите -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event и внутри этого метода получите начальные координаты x и y касания. Сохраните их в переменные экземпляра класса.

Затем в касаниях перемещается, сравниваются координаты x нового касания с исходными координатами от касаний, если x <, тогда переместите влево, иначе, если x> затем переместите вправо.

Обратите внимание, что touchesMoved:withEvent вызывается только при касании, поэтому, если пользователь прикасается и перемещается вправо, он оставляет свой статический палец, он не сообщает о касаниях.

Вам нужно будет установить -touchesEnded:withEvent: и -touchesCancelled:withEvent:, чтобы подобрать, когда коснется.

+0

Привет, Спасибо, что нашли время, чтобы ответить на мой вопрос, одна проблема, я могу получить touchCount и Tap count, но .... не знаю, как получить x, y позицию касания event –

+0

'CGPoint touchLocation = [[касается anyObject] locationInView: self];' –

+0

Привет, спасибо за помощь –

Смежные вопросы