Я создаю игру для ios, используя быстрый. Я реализовал систему компонентов компонента из Apples GameplayKit, очень похожую на то, как показано в this tutorial.Как я могу передать событие touchsbegan в компонент сущностей с помощью swift?
Я добавил сетку квадратов, которые я хочу по-разному реагировать на жесты касания. Я изменю состояние игры, используя конечный автомат, когда элемент пользовательского интерфейса будет прослушиваться, но я также хочу изменить, как каждый квадрат реагирует на жест нажатия. Из моего нынешнего ограниченного понимания лучший способ сделать это - изменить делегат жесты нажатия. Однако я не смог найти простых примеров того, как это можно сделать. Sqaures - это SKSpriteNodes.
Код можно получить по запросу; однако я ищу неконкурентный пример того, как это можно было бы сделать самым простым способом.
Кто-нибудь знает, как это можно сделать или может предложить «лучший» способ. Чтобы избежать субъективности, я лучше определяю структуру с точки зрения архитектуры. (Например, несколько операторов if в одном дескрипторе жестов выглядят как неправильный способ сделать это.)
Если каждый квадрат является подклассом 'SKSpriteNode', вы можете установить его свойство' userInteractionEnabled' 'true' и переопределить его методы' touchhesBegan/Moved/Ended' для получения событий касания. Затем вы можете реализовать квадратные эффекты (поворот, масштабирование и т. Д.) В подклассе. – 0x141E
Спасибо. Я отдам это. Каждый квадрат, который я вижу на экране, является SKSpriteNode. Я могу получить доступ к узлу через созданный мной компонент спрайта. – Relequestual
Я предлагаю вам сделать ваши квадраты подклассом «SKSpriteNode», чтобы вы могли анимировать квадрат при касании, а затем вызвать метод в сцене, чтобы обработать прикосновение на более высоком уровне, если это необходимо. – 0x141E