Я люблю игры, и я очень люблю математику, поэтому я создал новую игру на основе известной математической задачи, которая называется Семь мостов Кенигсберга. Сейчас игру можно найти в App Store, и я хочу поделиться ею со всеми.
Эта первая статья в серии статей об IOS программирование, которую я планирую. В данной статье я буду приводить свою игру в качестве наглядного примера. Мы рассмотрим отдельные ее компоненты, и разработку в целом.
Первые шаги
В этой статье, как уже упоминалось ранее, в качестве примера, я буду использовать реальную игру. Для начала, вам понадобиться следующие:
- Mac
- Среда Xcode от Apple, которую можно скачать на официальном сайте Apple.
После того как вы скачали и установили Xcode, сделайте следующий шаг, и скачайте проект с GitHub. Откройте его, а затем запустите, нажав кнопку «Выполнить» в верхнем левом углу Xcode.
Это откроет игру в симуляторе, так что вы можете играть бесплатно, читать эту статью и видеть компоненты игры.
Правила игры
Seven Bridges — это игра — головоломка. Игрок посещает город островов, окруженный реками.
Все действия в игре происходят с помощью одного жеста. Просто выбираете, куда бы вы хотели попасть, если вы попадете на мост, то перейдете его, если в реку, то герой отскочит назад.
Также игра позволяет вам перезапустить уровень, отменить последний ход и вернуться в меню. Есть также несколько других экранов для поддержки игры.
Сомневаетесь? Посмотрите специальное обучающие видео.
Вы уже видели похожие макеты игр, например, как в 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 говорит мне, когда эти удары случаются.
Box2d является физическим движком, написанным в C++. Он может обрабатывать сложные переменные, такие как гравитация и трение, но мы используем его только для об …
Если вы хотите прочитать полностью статью, посетите сайт наших спонсоров