Подтвердить что ты не робот

Настольная игра iPhone: OpenGL ES или CoreGraphics?

Я хочу запрограммировать настольную игру (похожую на шашки) для iPhone. Будет ли OpenGL ES или CoreGraphics лучшим вариантом? Что делает большинство игр этого типа в App Store?

4b9b3361

Ответ 1

Собственно, я бы предложил в этом случае Core Animation или даже только UIViews. Если вы прямо рисуете все свои элементы в одном представлении через Core Graphics, тогда обновите это представление для каждого кадра анимации, вы получите ужасную производительность.

Я предлагаю рисовать отдельные элементы игрового поля (куски, счетчики, квадраты плат и т.д.) как отдельные UIViews или CALayers, а затем оживлять эти слои или виды вокруг. UIViews не слишком тяжелее CALayers, и они используют Core Animation за кулисами, чтобы делать простые движения, масштабирование или затухающие анимации. Они также могут реагировать на события касания. CALayers полезны, если вы хотите построить более кросс-платформенную (Mac и iPhone) игру, или если вам нужно сделать более сложные анимации.

Для двухмерной игры я бы держался на OpenGL, пока вы не были абсолютно уверены, что вы не сможете получить такую ​​производительность, какую вы хотите от Core Animation. OpenGL намного менее изящна для кодирования.

Для хорошего примера того, как делать настольную игру с использованием Core Animation, Apple предоставила пример кода GeekGameBoard. Хотя это приложение Mac, код Core Animation можно перевести прямо на iPhone.

Ответ 2

Вы также можете проверить cocos2d для iphone - это довольно полнофункциональная 2d игровая библиотека; он получил tilemaps, sprites, parallax, scheduling и т.д. Я использую его для своей игры, и это немного помогло мне.

http://code.google.com/p/cocos2d-iphone/

Ответ 3

OpenGL, если все сделано правильно, вероятно, будет выглядеть лучше. Тем не менее, я понимаю, что это сложнее, чем CoreGraphics, если вы не знаете, как это работает.

Однако, если вы не знакомы с ним, CoreGraphics проще подобрать. Я не очень разбираюсь в OpenGL, поэтому, когда я писал игру, я сделал это в CoreGraphics, и это получилось довольно неплохим.

Ответ 4

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

Это действительно зависит от того, какой вид вы собираетесь делать.

Ответ 5

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

Ответ 6

Для этой, безусловно, основной графики и основной анимации. У Джеффа ЛеМарша есть образец шаблона для игры Блэк Джека в его блоге - я только что закончил загадку suduko этого подхода. Что касается cocos2D, который я использую для игровой платформы - openGL не улучшит или не улучшит графику - это определенно не сделает графику лучше выглядеть - вы можете сделать свое фотошоп своим сердцем на этом и чувствовать себя в безопасности и знать, что он отлично подойдет, Изучение Cocos2D для этого слишком много накладных расходов - то же самое с обучением openGL ES - просто используйте графику ядра и получите ее там. Что касается знания openGL ES для будущего - конечно, - но вы должны понимать ядро ​​Apple, прежде чем пытаться это сделать.

Ответ 7

OpenGL. Это будет стоить в конечном итоге, и я подумал, что кривая обучения еще проще, чем CoreGraphics для 2D-спрайтов.