Я хочу запрограммировать настольную игру (похожую на шашки) для iPhone. Будет ли OpenGL ES или CoreGraphics лучшим вариантом? Что делает большинство игр этого типа в App Store?
Настольная игра iPhone: OpenGL ES или CoreGraphics?
Ответ 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 и т.д. Я использую его для своей игры, и это немного помогло мне.
Ответ 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-спрайтов.