У cocos2d-iphone тип проекції за замовчуванням - проекція "3D". Але ви також можете встановити проекцію на "2D" так:
[[CCDirector sharedDirector] setProjection:CCDirectorProjection2D];
За кулісами 3D-проекція використовує перспективну проекцію, тоді як 2D-проекція є OpenGL-ортографічною проекцією. Технічні деталі цих двох режимів проектування можна переглянути тут, що ні що мене цікавить.
Які переваги та недоліки 2D-проекції для користувачів cocos2d? Які вагомі причини перейти на 2D-проекцію?
Особисто я використовував 2D проекцію, щоб мати можливість використовувати глибинну буферизацію для ізометричних тилей. Isometric tilemaps вимагає цього для правильного z-упорядкування плиток і об'єктів на tilemap.
Я також використовував 2D проекцію з глибиною буферизаціїв проектах, що не використовують tilemap, для отримання повного керування z-замовлення через властивість vertexZ. Цей проект використовував псевдоізометричний дисплей, де вершина Z об'єкта заснована на його координаті Y.
Це означає, що я використовував тільки 2D проекціюбути в змозі використовувати властивість vertexZ, яка також вимагає вбудовування глибини буферизації. Чи є інші причини, які можна перейти до 2D проекції?
Відповіді:
3 для відповіді № 1Перехід до 2D-проекції - це заощадження життя в наступному сценарії:
Ви створюєте велику CCRenderTexture
Ви намалюєте на ньому купу матеріалу, або за допомогою [... visit] або функцій малювання OpenGL
Ви додаєте текстуру візуалізації у ваш шар, наприклад, для того, щоб речі, які ви намалювали в пункті 2., були фоном для вашої гри.
За допомогою 3D-проекції текстура буде відображатися з вертикальними та / або горизонтальними лініями несправностей. Див., Наприклад, http://www.cocos2d-x.org/boards/6/topics/16197 який для cocos2d-х, але я спостерігав той же ефект і для cocos2d-iphone і встановлення проекції на 2D позбулися проблеми.
1 для відповіді № 2
Я переключився на 2D проекцію як єдинузасоби для вирішення проблем з візуалізацією шрифтів за допомогою міток CC, як файлів шрифтів, так і міток на основі TTF. Це не завжди є причиною виникнення проблем зі шрифтами, але це вирішує деякі проблеми для мене, коли все інше не вдалося.