Я реализую меню с горизонтальной прокруткой для игры SpriteKit
и не знаю, как это сделать. Моя стратегия изначально заключалась в том, чтобы добавить все мои пункты меню в сцену и просто перемещать камеру по горизонтали в соответствии со свайпами.
Проблема в том, что меню вращающееся/круговое (последний элемент связан с первым и т. д.), поэтому, даже если бы я повторял пункты меню бесконечно, после постоянного смахивания в одном направлении, я думаю, что будет достигнут предел координат, и приложение крушение.
Мое следующее решение — добавить один пункт меню в поле зрения камеры, один слева и один справа. Затем при смахивании правильный элемент перемещался в поле зрения моей камеры через SKAction
, а исходный элемент удалялся. Затем я удалял дочерний узел, самый дальний от камеры, и добавлял следующий элемент в сцену в направлении, в котором я провел пальцем. Таким образом, мой диапазон x (в пунктах) будет только от -displayWidth до displayWidth. Проблема в том, что мне нужно было бы анимировать все пункты меню одновременно, и поскольку они являются отдельными узлами, я не видел способа синхронизировать их анимацию.
Также мне нужно проверить положение элементов в пунктах меню и изменить их шейдеры, когда они достигают границы экрана. SKActions
, кажется, блокирует метод обновления SKScene
, поэтому в идеале я стараюсь избегать SKActions
.
Есть ли какая-нибудь жизнеспособная стратегия, которую мне здесь не хватает?