Анимация спрайтов Xamarin.iOS в подчиненном представлении

Анимация спрайтов Xamarin в подпредставлении

Я пытаюсь использовать Xamarin, а не MonoGame, для рендеринга спрайта. Я хочу полностью описать свою ситуацию, чтобы дать моему вопросу некоторую предысторию. Я хочу использовать UIViewController для отображения двух UIView в окне. Один UIView, UIView A, будет располагаться непосредственно над вторым, UIView B, на экране, а не перекрывать его. UIView B вызовет событие, которое отобразит спрайт в UIView A. На данный момент это событие перехватывается UIViewController, и контроллер бросает событие в UIView A. Я не знаю, как визуализировать спрайт в UIView A. Я провел большое исследование и предложил несколько решений, ни одно из которых не смогло успешно работать. Я перечислю решения, которые я нашел. Я разместил их в том порядке, в котором я предпочел бы попробовать.

Решение №1: GLKView Я обнаружил, что у многих людей возникают проблемы с задержкой анимации при использовании CoreAnimation. В Objective-C на iOS рекомендуется использовать GLKView. Я не могу найти, как это будет работать в Xamarin. Я нашел примеры Objective-C, не очень подробные, о том, как запустить GLKView в UIViewController. Никто явно не говорит, как настроить функцию делегата для обработки экрана. Это также не объясняет, как обращаться с извлечением изображений из листа спрайтов.

Решение № 2: Cocos2D Я обнаружил, что многие 2D-игры для iOS созданы с использованием Cocos2D из-за его способности легко отображать спрайты. Я обнаружил, что в Objective-C на iOS вы можете загрузить UIView, который является представлением Cocos2D. Я знаю, что люди создавали игры Cocos2D, используя Xamarin. Однако мне еще предстоит найти надежный пример того, как это сделать в Xamarin.

Решение № 3: UIImageView Я нашел примеры выполнения простой анимации спрайтов с помощью UIImageView, расположенные здесь: http://docs.xamarin.com/recipes/ios/standard_controls/image_view/animate_an_imageview. Однако в примере загружается несколько уникальных изображений, а не изображения, извлекаемые из одного листа спрайтов. Я попытался найти пример Objective-C и все примеры, использующие класс GCImageRef, которого нет в Xamarin. Пример находится здесь: Как вырезать большой спрайт png в более мелкие UIImages?.

Я уверен, что могут существовать и другие решения, которые мне еще предстоит найти, но я хотел бы получить некоторую информацию и примеры того, какое решение я должен принять.

Спасибо, Роберт


person CubanAzcuy    schedule 25.06.2013    source источник
comment
мой совет: если вам нужны примеры, чтобы сделать что-либо из этого, возможно, вам лучше не использовать xamarin, а вместо этого использовать нативные технологии. Для них доступно гораздо больше примеров по сравнению с нишевым решением, таким как xamarin/monotouch. Что касается спрайт-листов, то cocos2d (или sparrow) - самое простое решение, у других нет встроенной поддержки текстурных атласов.   -  person LearnCocos2D    schedule 26.06.2013


Ответы (1)


Я не могу говорить о специфике вашего вопроса, но я могу указать вам на причины, которые я нашел очень полезными при знакомстве с использованием Xamarin и SpriteKit:

Основное пошаговое руководство: http://blog.xamarin.com/make-games-with-xamarin.ios-and-sprite-kit/

Как написать игру spriteKit (для iOS, но полезно прочитать, поскольку последовательность и события будут похожими): http://www.raywenderlich.com/42699/spritekit-tutorial-for-beginners ‹-- напишите игру с набором спрайтов

Самое полезное: официальные примеры SpriteKit непосредственно из Xamarin, http://docs.xamarin.com/samples/ios/SpriteKit/

Я надеюсь, что это поможет вам или другим в вашей ситуации!

person woody121    schedule 06.02.2014
comment
Это было до SpriteKit. В ближайшее время выложу пример. - person CubanAzcuy; 07.02.2014