Добавление UIScrollView в SkScene/SkView

TL;DR: у меня есть игра SpriteKit, которая отлично выглядит на 4-дюймовых экранах, нужно быстро исправить (например, использовать прокрутку для включения SKScene) для 3,5-дюймовых экранов без повторного кодирования всего, спасибо!

В настоящее время я закончил игру, над которой работал над SpriteKit, и планирую загрузить ее в AppStore, но вот проблема: я спроектировал игру так, чтобы она отлично работала на устройствах с 4-дюймовым экраном, поэтому в версии 3.5 она выглядит ужасно, и я боюсь, что Apple вернет мне игру, чтобы исправить эту проблему. Поэтому я рассматривал следующие варианты:

  1. Используйте ScrollView для представления сцен, используя следующий метод:

`

SKView *skView = (SKView *)self.view;

// Create and configure the scene.
SKScene *scene = [BIMainMenu sceneWithSize:skView.bounds.size];
scene.scaleMode = SKSceneScaleModeAspectFill;
UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];
scrollView.contentSize = CGSizeMake(320, 568);

[scrollView addSubview:skView];
[self.view addSubview:scrollView]; //expection thrown here
// Present the scene.
[skView presentScene:scene];

`

Но этот метод не работает, он проходит через исключение при попытке добавить scrollView в представление. Может я тут что-то не так делаю?

2. Используйте условные обозначения в каждой строке кода, чтобы проверить размер устройства и правильно настроить изображения: возможно, это правильный путь, но я очень надеюсь, что есть другой способ, поскольку основная игровая область зависит от «доски» размером 568 пикселей. long, и это может также полностью испортить игровую логику. (Да, возможно, плохое планирование.

3. Используйте что-нибудь в этом ответе: https://stackoverflow.com/a/19096256/2328918 Но я думаю, что некоторые из установка также может испортить мой код.

4. Также пытался изменить масштаб сцены, но тоже не работает.

Спасибо за ваши предложения и советы, я ищу «короткий» ответ в том смысле, что добавление Scrollview в игру просто позволит 3,5 пользователям «играть» в игру, но на самом деле не решит проблему, но мне бы очень хотелось чтобы выпустить это как версию 1.0, а затем поработать над улучшением опыта для экранов 3.5.


person romsearcher    schedule 18.07.2014    source источник
comment
Почему вы думаете, что Apple не вернет вам версию вашего приложения 3.5 с прокруткой? Особенно, если это кажется неудобным, неуместным или иным образом выглядит или кажется дешевым решением для поддержки устройств 3.5, Apple может по-прежнему отклонять приложение на основании HID (руководства по дизайну человеческого интерфейса).   -  person LearnCocos2D    schedule 18.07.2014


Ответы (1)


Вы не можете использовать UIScrollView с SKView таким образом.

У вас может быть такая иерархия:

- UIScrollView
-- SKView
--- SKScene

но это бесполезно. Как вы думаете, как событие касания может обрабатываться как UIScrollView, так и SKView?

person Andrey Gordeev    schedule 18.07.2014
comment
Да, вы правы, я думаю, событие касания запуталось бы: это для прокрутки или для игровой логики? Но как тогда добиться подгонки сцены под 3,5 экрана? Или все равно было бы слишком сложно использовать как прокрутку, так и сенсорные кнопки? Спасибо за ваш ответ - person romsearcher; 18.07.2014
comment
У меня не было проблем с экраном 3,5. В худшем случае вы можете просто добавить черные линии сверху и снизу сцены. - person Andrey Gordeev; 18.07.2014