Как проверить, нарисовал ли пользователь линию над коллекцией точек в cocos2d? - PullRequest
1 голос
/ 03 августа 2011

Я делаю приложение для отслеживания алфавита для детей.Я дал точечные точки.как определить, что я двигаюсь по этим точкам.с помощью Touches перемещено, я хочу написать. Если перемещено неправильно, я не люблю рисовать линии.Пожалуйста, поделитесь своими идеями enter image description here

1 Ответ

1 голос
/ 03 августа 2011

Простая версия:

  1. Запишите начальную точку касания на touchesBegan.
  2. При каждом вызове touchesMoved выполните:
    1. Интерполироватьразумное количество точек (дюжины или около того должно быть достаточно) между начальной точкой касания и текущей точкой касания.
    2. Для каждой интерполированной точки выполните проверку попадания для ваших «точечных» местоположений.Это может быть сделано путем вычисления линейного расстояния между точкой и местоположением «точки» и подсчета любых расстояний, близких к некоторому порогу, как «попадание».
    3. Установите начальную точку касания на текущую точку касания.точка.
  3. На touchesEnded выполните один последний раунд интерполяции и проверки удара, а затем очистите начальную точку касания.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...