2016-04-30 2 views

ответ

1

Я также работаю над некоторыми играми на сегодняшнем экране. До сих пор я нашел 3 решения, которые работают твердое:

  1. Как упоминалось работает с UIKit
  2. Используйте SpriteKit в минимальной образом
  3. Использование закадровый изображений для визуализации

Задача о решение 2 заключается в том, что оно очень ненадежно. Даже вызов регулярно completionHandler!(NCUpdateResult.newData) не сработал. Так что это просто ограниченное использование SKAction в конце, которое принесло много.

Решение 3 также хорошо и работает достаточно прочным. Конечно, вы должны изобретать велосипед и не можете использовать приятные функции SpriteKit. Но поскольку я использовал этот подход уже в играх watchOS, это было не так много усилий для использования в Extensions.

Я рекомендую решение 3, потому что у вас есть полный контроль и он работает сплошной.

0

Это определенно возможно. Я думаю, вы пытаетесь создать что-то вроде популярной игры «Виджет», и я считаю, что это игра SpriteKit, встроенная в Today Extension.

Чтобы начать, я бы предложил полностью понять «Расширения сегодняшнего дня» и его лимиты, а затем полностью понять SpriteKit и ограничения, которые он имеет.

Что-то, на что вы действительно хотите сосредоточиться, делает чрезвычайно эффективную часть приложения. Все вокруг, от фактического кода и от того, как работает ваш код. Это связано с тем, что Today Extensions на самом деле не приложения, а «расширения» на вашем устройстве, поэтому, если у вас есть игра с интенсивной графикой или интенсивной памятью, ваше приложение выйдет из строя.

+0

Да, спасибо за ваш ответ! я возился с расширениями, и я стремлюсь к простой игре. Я пытался до сих пор запускать свое приложение в TodayViewController, но некоторые из них, когда я пытаюсь представить сцену из TodayViewController, ее не происходит, но нет ошибки в простом коде. Ты знаешь почему? – neney

+0

Две причины .... 1) устройство/симулятор может работать на высшем целевом выпуске iOS. Убедитесь, что целевая iOS меньше или совпадает с устройством/симулятором в настройках сборки. Обычно я тестирую приложение «hello world», чтобы увидеть, правильно ли отображается все (чтобы убедиться, что все настроенные семантические настройки были заполнены должным образом). 2) приложение может потреблять слишком много памяти (помните, что сегодня расширения имеют разные ограничения от реальных выделенных приложений) ... Соблюдайте ограничения памяти и проверяйте, так ли это. –

+0

Можете ли вы предоставить мне простой образец проекта или фрагмент кода, представляющий сцену Sprite-kit в современном виджете, может отображаться изображение или что-то, что я просто хочу убедиться, потому что кажется, что когда я пытаюсь запускать изображения в TodayViewController работает нормально, и когда я запускаю код спрайта по умолчанию, как нормальное приложение, он отлично работает. Было бы благодарно спасибо! Еще раз для вашего времени – neney

0

Я пробовал разработать игру в spriteKit для расширения ios сегодня, добавил SKViews в UIView, но это не сработало. Кажется, что сцена не загружается в сегодняшние расширения. Я думаю, что это невозможно - используйте spriteKit в сегодняшнем расширении. Но я нашел хорошее решение - используя UIKit вместо spriteKit. Это очень мощная платформа для разработки игр, и я думаю, что игра Стива развивается через UIKit. Вы можете проверить динамику с помощью UIKit в этом примере: https://www.raywenderlich.com/50197/uikit-dynamics-tutorial

Также я могу загрузить образец использования UIKit в современной игре расширения, развивающейся на github, если это необходимо.

+0

Привет, Иван, я нашел способ использования Spritekit в Today Extension. Это возможно, но он использует очень мало памяти. Я попробовал образец Spritekit по умолчанию со Spaceship, и оказалось, что это сработало, но после того, как я использовал количество узлов, которые я не помню в данный момент, Extension Crashed. Таким образом, вам нужно будет знать пределы расширения Today и Spritekit вместе. И было бы очень приятно, если бы вы могли загрузить образец с помощью UIKit – neney

+0

Возможно. Я использую Widgets во всех своих играх SpriteKit. – crashoverride777

0

Я сделал рамки с целью решить эту проблему несколько месяцев назад, link here. У меня не было времени проверить его правильно в iOS 11, так что могут быть некоторые новые ошибки.

Единственным рабочим решением, которое я нашел для использования SpriteKit с Today Extensions, было создание SKView и представление сцены в viewWillTransition(to size:with coordinator:). Это необходимо, потому что Today Extensions имеют другой жизненный цикл, чем обычное приложение, look at these iOS Widget Gotchas, чтобы получить более подробную информацию о том, как это работает. EDIT: Правильный способ настройки этих вещей теперь может быть viewWillAppear в iOS 11, но может потребоваться провести некоторое тестирование.

Еще одна важная вещь, которую следует учитывать при создании игр с виджетами, состоит в том, что у вас очень мало памяти (16 мб, если я правильно помню), чтобы построить вашу игру. Вам необходимо сократить потребление памяти любой ценой, иначе виджет выйдет из строя и отобразит сообщение о том, что он не может загрузить.

Смежные вопросы