Создание Open-Source iPhone игры

Я люблю игры, и я очень люблю математику, поэтому я создал новую игру на основе известной математической задачи, которая называется Семь мостов Кенигсберга. Сейчас игру можно найти в App Store, и я хочу поделиться ею со всеми.

Эта первая статья в серии статей об IOS программирование, которую я планирую. В данной статье я буду приводить свою игру в качестве наглядного примера. Мы рассмотрим отдельные ее компоненты, и разработку в целом.

Первые шаги

В этой статье, как уже упоминалось ранее, в качестве примера, я буду использовать реальную игру. Для начала, вам понадобиться следующие:

  1. Mac
  2. Среда Xcode от Apple, которую можно скачать на официальном сайте Apple.

После того как вы скачали и установили Xcode, сделайте следующий шаг, и скачайте проект с GitHub. Откройте его, а затем запустите, нажав кнопку «Выполнить» в верхнем левом углу Xcode.

Running Seven Bridges in Xcode

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

Правила игры

Seven Bridges — это игра — головоломка. Игрок посещает город островов, окруженный реками.

Hello Bridges level

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

Two Bridges level

Также игра позволяет вам перезапустить уровень, отменить последний ход и вернуться в меню. Есть также несколько других экранов для поддержки игры.

Level set selector

Levels selector

You won screen

Сомневаетесь? Посмотрите специальное обучающие видео. 

Вы уже видели похожие макеты игр, например, как в Cut the Rope и Where’s My Water.

Перед тем, как мы начнем

Seven Bridges — это простая игра. Тут нет сложной физики, как в Angry Birds или богатой текстуры, как в Infinity Blade.  В Seven Bridges только один игрок, который ходит по мостам и врезается в реки. Это звучит просто, но многие тратят очень большое количество времени, на такую, казалось бы, легкую игру.

Игра Seven Bridges написана в сочетании языков программирования Objective-C и Objective-C++. Если вы привыкли к программированию, используя такие языки как JavaScript, то Objective-C вас удивит.

Программирование для iOS

Начать работу с JavaScript легко. Вы нажимаете на кнопку JQuery. Многие учебники программирования для iPhone написаны так, как будто программирование для iPhone – это легко. На самом деле это не так.

Objective-C разрабатывался в течение почти 30 лет. Программирование требует изучение больших систем и некоторых фундаментальных понятий, на которых все опирается. Вся документация Objective-C предполагает, что у вас есть определенный опыт в объектно-ориентированном программировании.

Objective-C очень отличается от JavaScript и программирование с его использованием требует понимания некоторых основ старой школы. Вспомните, действительно ли вы читали книгу об объектно-ориентированном программирование, например, ”Object-Oriented Analysis and Design with Applicationsс“ автора Grady Booch, а также“The C Programming Language” написанную Брайаном Керниганом и Деннис Ритчи. Так же советую вам почитать руководство под названием «The Objective-C Programming Language».

Итак, новости не так ужасны. Objective-C демонстрирует свой возраст в некоторых областях, но инструменты, и среда являются превосходными.

Файлы

У Вас уже есть код на вашем компьютере, давайте попробуем понять, что же мы видим.

  • .h Это файлы класса headers. Каждый из этих файлов представляет информацию об отдельном классе или объекте в проекте.
  • .m Эти файлы являются Objective-C файлами реализации.
  • .mm Эти файлы являются Objective-C файлами реализации. Objective-C представляет собой гибрид, в котором вы можете использовать часть Objective-C и C + в одном и том же файле. Игра Seven Bridges использует Objective-C, так что он может воспользоваться преимуществами написанными на C+.
  • .xib Эти файлы определяют визуальные views в игре, с помощью них вы сможете создать необходимые вам кнопки и другие элементы управления.
  • .png Эти файлы являются отдельными изображениями, используемыми в игре.
  • .pvr.gz Эти файлы содержат большие наборы изображений. Изображения объединяются в один файл, так что они загружаются быстрее и занимают меньше места.
  • .plist Это файлы с XML свойствами. Они определяют основу того, как работает приложение и место изображений.
  • .m4a Это звуковые файлы, которые обеспечивают звуки в игре.

Проекты Xcode также включают в себя папку your project.xcodeproj, содержащую все файлы конфигурации проекта. Моя называется bridges2, потому что в первый раз я испортил проект так сильно, что пришлось начинать с самого начала.

Основа

В дополнение к стандартным библиотекам Objective-C, Seven Bridges использует три основных структуры.

UIKit

Каждое приложение IOS начинается с UIKit. Это всеобъемлющие рамки от Apple, которые обеспечивают все основные элементы управления приложения, такие как окна, кнопки и текстовые поля. Большинство классов в UIKit начинаются с префикса UI, как UIWindow и UIButton.

Самый простой способ работы с UIKit с помощью визуального редактора, который также предоставляет Xcode. Xcode позволяет легко перетаскивать элементы управления в приложение. Он хорошо работает для бизнес-приложений.

Cocos2d

Вы можете рисовать на экране непосредственно с OpenGL, но такой вариант увеличивает затрачиваемое вами время. Библиотеки игры обеспечивают поддержку размещения изображений более высокого уровня, а также создание анимации и управления игрой. Существует несколько и для iOS.

Я выбрал cocos2d для iPhone, потому что он хорошо поддерживается, имеет простой API и поставляется с большим количеством примеров. Он также имеет простые и понятные уроки для новичков. Ray Wenderlich является плодовитым разработчиком игр для IOS, каждый раз, когда я искал новую тему, именно у него я  находил понятные и простые разъяснения. Его простая игра для iPhone с cocos2d tutorial — прекрасный небольшой образец игр с использованием cocos2d.

Cocos2d обрабатывает всю анимацию в моей игре. Первоначально она была написана на Python для настольных приложений. Когда соберетесь скачать Cocos2d, используйте запрос «Cocos2d iPhone».

Cocos2d обрабатывает процесс взаимодействия игры с пользователем, но он не может справиться с процессом взаимодействия с объектами. Мне нужно знать, когда игрок падает в реку, попадает на мост или любой другой объект. Такой тип обнаружения столкновений становится намного проще с такой библиотекой, как Box2d.

Box2d

Box2d является физическим движком, написанным в C++. Он может обрабатывать сложные переменные, такие как гравитация и трение, но мы используем его только для обнаружения столкновений. Файлы Box2d начинаются с префикса b2.

Моя игра не использует сложную физику, например, размахивание конфетами или выплескивания жидкости. Она просто обрабатывает игрока, который ходит по экрану, и натыкается на вещи. Box2d говорит мне, когда эти удары случаются.

Player bump interaction

Box2d является физическим движком, написанным в C++. Он может обрабатывать сложные переменные, такие как гравитация и трение, но мы используем его только для об …

Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров

Comments are closed.