2012-06-09 5 views
4

Кажется, что мы можем показывать слои и даже использовать разные zPosition для разных слоев в Core Animation. Однако верно ли, что нет простого способа показать что-то с некоторой толщиной?Can Core Animation и CALayer и CATransformLayer показывают объект с «толщиной»?

Например, ломтик сыра толщиной 2 мм или нажимная кнопка или наклонная монета и, следовательно, толщина 1 мм? Как-то толщина должна быть показана путем добавления еще одного слоя для имитации толщины? Таким образом, этот 2.5D является более базовым 2.5D, где это 3D-мир, ограниченный плоскими 2D-изображениями ... в то время как некоторые 2.5D, например, некоторые игры RPG (например, Diablo), которые иногда также называют 2.5D, но объекты в такой ситуации (например, в здании) могут иметь ширину, длину и высоту (толщину). Так что на самом деле, это на самом деле довольно 3D для меня ... кроме большинства объектов на 2D-карте, которая наклоняется вбок.

Итак, вернемся к вопросу ... это правда, что в IOS, она довольно ограничена 3D мир плоских 2D изображений и собирается в любой width х length х height потребуется идти в OpenGL/CAEAGLLayer?

+0

Не является ли толщина 2.5D обычно подделанной теневым изображением? '' zPosition'' управляет сложным порядком, я не думаю, что он имеет отношение к 3D-эффектам. –

+0

с CATransformLayer, zPosition может фактически повлиять на z-координату изображения –

ответ

2

Да, это правда. Core Animation выполняет 3D-анимацию 2D-объектов (слоев). Вы можете имитировать толщину, создавая сложную сборку объектов, где вы добавляете слои для краев вашего объекта, но это боль.

OpenGL - это гораздо лучшая платформа для 3D.

+0

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