2017-01-13 3 views
4

SpriteKit эффективно работает на графическом процессоре.Причины использования CoreGraphics вместо SpriteKit?

CoreGraphics работает на процессоре.

Я не могу придумать ни одного чертежа, который CoreGraphics может сделать, что SpriteKit не может сделать.

Учитывая это, можете ли вы назвать причины, почему кто-то все еще может предпочесть CoreGraphics поверх SpriteKit для новых приложений?

+1

Я знаю SO имеет странные политики на «субъективные» вопросы и «мнения на основе» ответов, но если вы видите ay "между этими двумя вариантами (SpriteKit и Core Image), который лучше всего подходит для ... ABC, потому что они оба несопоставимы (по-разному) и только в некоторых отношениях бесплатны, вы можете получить хорошие ответы. Прежде чем он закрывается для того, чтобы быть «вне темы». Или, может быть, достаточно людей поймут, что ABC в рамках только двух рамок - это не мнение, что факты могут показать объективность лучших/прав. – Confused

+1

Поверхность SpriteKit заключается в том, что она построена поверх OpenGL/Metal, и это очень быстро. У вас будет более легкое время, когда 2D-игра будет работать с SpriteKit, CoreGraphics - это графический API более низкого уровня, более общий и не имеющий прямого отношения к играм и взаимодействиям. – MoDJ

ответ

9

Это не вопрос «или», потому что есть различия в их способностях.

Core Graphics может создавать очень сложные изображения, с невероятно сложными наращиваниями слоев с различными эффектами и контентом. Но, самое главное, очень хорошо рисовать фигуры и линии по качеству, которые не соответствуют ни одной другой структуре iOS. Как говорит Apple:

Core Graphics ... обеспечивает низкоуровневый, легкий 2D-рендеринг с непревзойденной точностью вывода. Вы используете эту фреймворк для обработки рисунков, преобразований, управления цветом, внеэкранного рендеринга, шаблонов , шаблонов изображений, градиентов и шейдеров, управления изображениями изображений, создания изображений изображений и создания изображений, а также создания PDF-документов, отображения и разбор.

https://developer.apple.com/reference/coregraphics

Вы не найдете создание PDF-экспорта, создание образа (создание текстуры, да, но не создание образа), ни сложные градиенты, управление цветом, сложные узоры, преобразования и закадровый рендеринга с контекст в SpriteKit.

Аналогичным образом вы не найдете такого сглаживания в Core Graphics в SpriteKit.

Если вы хотите интегрировать свои творения из изображений в приложения UIKit, вам намного лучше использовать сочетание Core Graphics, Core Image и Core Animation, чем даже пытаться использовать SpriteKit для создания и анимации такого рода в приложении.

Используйте SpriteKit для игр, подходящих для фокусировки на Sprites в качестве основного графического содержимого.

Вы можете, например, выбрать Core Animation и Core Graphics для игр, которые сосредоточены на более динамическом контенте или требовании к более качественному программно созданному контенту, чем вы можете получить только от SpriteKit. Или вы можете использовать Core Graphics, чтобы сделать контент для спрайтов более качественным, чем вы когда-либо выходите из SKShapeNode.

Итак ... лошади для курсов.

курсов быть, в основном:

A) Спрайты и простой 2D-рендеринг и рисование

B) Все виды графиков, динамичного рисунка и гораздо более высоких требований по качеству и выходных типам

или

C) немного смеси обоих

+0

Ваши знания поразительны. Я задал соответствующий вопрос: https://stackoverflow.com/questions/41636301/doing-completely-custom-animations-with-core-animation-performance в случае, если у вас есть время. Спасибо. –

+1

@ code-ninja-54321 больше не раздувает его эго .. его голова уже близка к взрыву – Fluidity