Итак, я начал работать над проектом в SpriteKit, и я надеюсь, что смогу реализовать сцену "главного меню" с помощью нескольких кнопок. Можно было бы перейти на экран выбора уровня, выбрать параметры и т.д. Затем с экрана выбора уровня будет несколько других кнопок, которые при выборе будут запускать игру и загружать выбранный уровень.
Мой вопрос: как должен быть создан проект? Должен ли каждый экран (выбор уровня, главное меню, опции) быть собственной сценой и иметь один главный контроллер? Или мне нужно иметь несколько контроллеров просмотра для всего? Или, может быть, контроллер просмотра для каждого уровня (хотя это не имеет особого смысла), который управляется навигационным контроллером в раскадровке?
Немного поиграв с ним и прочитав онлайн, я заметил, что я могу использовать контроллер вида, чтобы иметь UIButtons для моего главного меню. Тем не менее, они сохраняются через сменную сцену, но это не то, что я хочу. Это означало бы, что мне нужно было бы скрыть кнопки на каждой новой сцене, которая меня беспокоит, потому что я не уверен, что именно происходит с кнопками. Я знаю, что можно создавать кнопки из SKSpriteNodes (аналогично классу, который Graf опубликовал, и многие люди использовали). Это лучший вариант? Вместо того, чтобы использовать UIButtons в VC, я бы проверял, было ли прикосновение к этой кнопке node в методе touchhedBegan и касалось методаEnded, примерно так:
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
SKNode *node = [self nodeAtPoint:location];
if ([node.name isEqualToString:@"scene button"])
{
LevelScene *scene = [LevelScene sceneWithSize:self.view.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
[self.view presentScene:scene];
}
Правильно ли это подходит?
В конце концов, я хочу, чтобы можно было добавлять паузы, экраны игр и т.д., и не уверен, что достаточно просто заменить сцены. Кроме того, вместо отдельной реализации для каждого уровня я мог бы загрузить их из файла .plist
Я также рассматриваю факт того, смогу ли я анимировать кнопки. Полагаю, я бы хотел, чтобы они плавали вокруг или становились больше, когда они были выбраны (когда пользователь коснулся его, но не отпустил), и я считаю, что UIButton не позволит этого, так как это не SKSpriteNode.
Извините за такой длинный пост, но, надеюсь, это дает достаточно информации, чтобы помочь мне и получить меня на правильном пути! Спасибо!