2009-11-18 2 views
1

Я хочу сделать несколько простых 2D игр/клоны (для Mac), но у меня есть несколько вопросов:Mac DEV - Руководство по началу работы с 2D-игр

  • Должен ли я использовать Quartz 2d или OpenGL (я не планирую в ближайшее время попробовать 3d)
  • Кажется, что существует много typedef'd вещей, таких как CGFloat/GLfloat, с которыми я должен пользоваться?
  • Должен ли я использовать Objective-C для игры тоже (классы) или просто C? (Я предполагаю, что я буду использовать Objective-C и Cocoa для окон и представлений.)
  • Разве можно перерисовать весь просмотр каждый раз? Я действительно не понимаю, как работает параметр -drawRect dirtyRect NSView, как он знает, что я хочу обновить?
  • Есть ли хорошие учебники для этого?

Спасибо.

+0

Другой язык, чтобы проверить действительно простой рисунок - это Обработка. http://processing.org/ – jtbandes

ответ

3

Кварц или Core Animation против OpenGL действительно зависит от того, что вы пытаетесь сделать. Если вы хотите простой рисунок и анимацию, используйте Quartz или CA. Если вам нужны быстрые/мощные игры, используйте OpenGL. В конце концов я бы предложил изучить оба.

Для типизированных вещей используйте то, что предназначено для конкретной системы, которую вы используете. Для Quartz/CA/CG используйте CGFloat. Для OpenGL используйте GLfloat.

Цель-C против C также зависит от скорости, которую вы хотите. Objective-C добавляет немного накладных расходов, но (очевидно) позволит вам создавать гораздо больше объектно-ориентированных игр. Я бы предложил использовать Objective-C, если вы используете Quartz и Core Animation, а также Obj-C или C, если используете OpenGL. Однако, если вы делаете это на Mac (например, не для iPhone), вы, вероятно, не увидите большой разницы, если не выполняете сложный быстрый чертеж.

Я не совсем уверен в drawRect, но у this question есть информация, которая может ответить на этот вопрос.

Для введения в Кварц, я бы рекомендовал this tutorial, и я всегда слышал, что NeHe tutorials рекомендуется для OpenGL.

+0

Спасибо за быстрый ответ! Прямо сейчас я просто пытаюсь сделать анимацию шара с симуляцией, но я хочу попробовать клонировать змею, и в конечном счете, отправиться на более сложные вещи. И да, это не для iPhone. Что вы на самом деле можете сделать с помощью основной анимации? И правильно ли мне, что OpenGL - это более движущиеся объекты, в то время как кварц - это больше форм рисования? – mk12

+0

Core Animation позволяет вам легко перемещаться и анимацию. Кварц предназначен для рисования. Я считаю, что их можно комбинировать. OpenGL я предполагаю для движущихся объектов, сцен и т. Д. См. Это руководство: http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/CoreAnimation_guide/Introduction/Introduction.html – jtbandes

+0

Если бы я сделал большинство из этого в C это, вероятно, было бы намного проще переносить в Windows, правда? – mk12

1

Если вы используете SDL с Cairo или OpenGL, вы получаете практически ту же модель программирования, но практически бесплатно получаете совместимость с платформой. Вы даже можете продолжить использовать цель C для большей части игры, если хотите.

Как Вы хотите эффективно заниматься графикой? Каиру, вероятно, будет проще просто пойти на 2D.