Я пишу игру в SpriteKit, в которой есть джойстик для управления игроком. Ранее я сохранял большую часть логики джойстика c в основных методах GameScene touchesBegan
, touchesMoved
и touchesEnded
.
Поскольку у меня несколько SKScenes
, я хотел абстрагировать это logi c в SKSpriteNode
подкласс JoyStick
, который содержит свои touches
обработчики событий. Это кажется хорошим решением, поскольку оно автоматически обрабатывает, находится ли касание «в границах» джойстика, и позволяет мне удалить логи c из самой сцены.
Однако я не могу найти любые хорошие ресурсы, описывающие, как правильно передавать информацию назад и вперед между экземплярами SKScene
и SKSpriteNode
, в которых реализованы обработчики сенсорных событий. Я мог бы передать JoyStick экземпляр объекта, который я хочу изменить (например, спрайт плеера), но мне любопытно, есть ли правильный способ передачи данных назад и вперед без привязки джойстика к указанному c «экземпляр для изменения» .
Кроме того, есть ли какие-либо иные недостатки в реализации обработчиков сенсорных событий в моих экземплярах SKSpriteNode, кроме обработки всего в обработчиках сцены?