Назначение информации о шаблонах изображениям (iOS)

Я новичок в мире разработки iOS, и я делаю небольшую (потенциально захватывающую) игру. Я знаю Python и HTML / CSS, поэтому я смогу справиться с компьютерными терминами, но было бы здорово, если бы вы смогли объяснить любые ответы.

В моей игре паттерн мигает на экране в течение небольшого промежутка времени, скажем, это стрелка влево, стрелка вправо, стрелка влево (в виде рисунка). Затем пользователь должен реплицировать шаблон (в правильном порядке), чтобы увеличить вперед. Я собираюсь использовать UIGestureRecogniser для вызова функции boost с помощью «правильного» шаблона. Следующим шагом в моем программировании является назначение «путей» к изображениям. Признак будет проверяться, если пользовательский ввод равен показанному шаблону, но мне нужен способ, чтобы компьютер мог видеть, отображается ли отображаемый образец пользователем (извините, если это запутывает). В сущности, что было бы самым эффективным способом распознать компьютер, если шаблон, заданный пользователем, аналогичен тому, который показан на экране.

Заранее спасибо,

Будет

Хорошо, поэтому я на самом деле неправильно читал первый раз и обновлял это. Раньше я указывал, как решить, какой шаблон будет соответствовать последовательности, если таковой имеется. Вы уже знаете последовательность, которая делает ее проще!

Давайте сделаем несколько предположений:

-Мы используем перечисление

 enum PatternType: Int { case Left = 0, Right, Up, Down } 

Примечание. Я знаю, что Радва Эбрахим упомянул перечисление и определил его как ShapeType . Тем не менее, вы действительно выглядите так, будто делаете «распознавание образов». Следовательно, ShapeType не определяет, что такое перечисление. На самом деле это, вероятно, будет PatternDirection или даже GestureDirection .

– У вас уже есть способность правильно читать жесты. Результаты представлены в Array<PatternType> .

-У вас есть определенный массив массивов, которые соответствуют шаблонам. Это Array<Array<PatternType>> . Другими словами, вы теперь пытаетесь противостоять.

-Вы уже сейчас можете сопоставить свои изображения в каждом направлении в перечислении.

-Вы знаете последовательность, с которой вы сравниваете.

Итак, давайте посмотрим на подход грубой силы. Подход грубой силы состоит в том, чтобы хранить последовательности шаблонов, подобные этому (только пример):

 let patternSequences:[[PatternType]] = [ [ .Left, .Left, .Left ], // This is sequence 0 [ .Right, .Right, .Right], // This is sequence 1 [ .Left, .Right, .Right, .Up ] // This is sequence 2 // Add more of your sequences here, each line is a sequence to match against // as well as the pattern you will show on screen [ .Down, .Up, .Left, .Down, .Up ] // Later on this, could be sequence 35 ] 

Более пятно будет загружать это из JSON или plist, но это упражнение остается за вами.

Допустим, у вас есть результаты:

 var results:[PatternType] = [ .Left, .Right, .Right, .Up ] 

Соответствие может быть выполнено с помощью == (для этой установки не требуется перегрузка, поскольку мы являемся массивом PatternType , который уже является Equatable, поскольку перечисление не содержит связанных данных)

Так что называть это было бы что-то вроде

 // After you have retrieved the input if patternSequences[currentSequence] == results { // Indicate success } else { // Indicate failure } 

Где currentSequence – это currentSequence, которую вы только что получили от пользователя.

Допустим, у вас есть объект под названием « Pattern который содержит массив объектов, называемых Shape . Каждый объект Shape имеет свойство, называемое type которое может быть перечислением и выглядит следующим образом:

 enum ShapeType { case ArrowLeft case ArrowRight case ArrowUp case ArrowDown } 

Каждый раз, когда вы создаете шаблон для отображения, вы сохраняете его в объекте Pattern , назовем его «currentPattern», затем вводите пользовательский ввод в объект-объект пыльника и называете его «userPattern».

Шаблоны и формы должны обеспечивать перегрузку оператора == чтобы выглядеть следующим образом:

в форме

 func == (left: Shape, right: Shape) -> Bool { return left.type == right.type } 

в шаблоне

 func == (left: Pattern, right: Pattern) -> Bool { return left.shapesArray == right.shapesArray } 

Таким образом, в вашей функции, которая будет сравнивать шаблоны (например, когда он нажимает «Готово», или когда счетчик ввода достигнут требуемого счета), все, что вам нужно сделать, это

 if currentPattern == userPattern { // it's correct,proceed to the next step }else { // show a pretty losing message } 

Подскажите, что вышеуказанный код находится в Swift, если вы используете Objective-C, вам нужно переопределить isEqual вместо оператора == .

  • Обнаружение ячейки сетки AQGridView с длинным нажатием
  • UIPanGestureRecognizer перестает вызывать селектор
  • Есть ли встроенный способ добавления распознавателя жестов (в частности, панорамирование) только к правым или левым краям представления?
  • ущипнуть конец или коснуться после распознавания пинча?
  • Добавление Tap GestureRecognizer в MKOverlay
  • UILabel со ссылкой и UITapGestureRecognizer
  • UTapGestureRecognizer не работает для .Began state
  • Попытка привлечь внутрь uiscrollview
  • Как добавить один UIGestureRecognizer ко всем UITextView без блокировки textView touch
  • 2 Finger Pan в ScrollView с другими жестами - iOS SDK
  • Как добавить UILongPressGestureRecognizer и UITapGestureRecognizer к одному и тому же элементу управления одновременно?
  • Interesting Posts

    Сортировка массива словарей по числу

    UIKeyboardWillShowNotification не срабатывает в iOS8

    Интерактивное видео в iOS: возможно ли инициировать определенные действия в коде, нажав отдельные фрагменты видео?

    Фильтр типа «Автоответчик» в Google Адресах «адрес» возвращает места типа «маршрут» через SDK iOS

    Где аудио SampleBuffer в OpenTok, TokBox ios SDK

    Удаление элементов в NSMutableDictionary удаляет другой словарь

    Можно ли воспроизвести фильтр темной комнаты в Swift?

    как применить цвет оттенка при нажатии и сбросить цвет оттенка при выпуске?

    iOS родной Facebook, просмотр ссылок не работает?

    Xcode: я не могу установить NSUserdefault для себя + 5

    iOS различные идентификаторы пакетов отображаются в одном приложении

    Ошибка запуска приложения Xamarin.iOS, отсутствие журналов сбоев и отсутствие сообщения об ошибке в консоли

    Я не могу добавить ссылку, чтобы открыть приложение для iphone

    iOS: Webview не масштабируется при переключении в альбомный режим

    Черный экран при выходе из PDF-файла UIDocumentInteractionController в iOS 7

    Давайте будем гением компьютера.