Kobold2D (Альфа) Демонстрация

26 июня 2011, в cocos2d, Kobold2D, Штеффеном Иттераймом by Steffen Itterheim

Я сделал запись screencast, чтобы произвести Вам первое впечатление от текущей альфа-версии Kobold2D. Я покажу Вам, что, что это (до сих пор) включает и как это улучшает cocos2d процесс развития.

Начиная с записи screencast я добавил проект Снижения Болвана из книги как проект шаблона игры ИОСА. Я также добавил проекты физики Box2D & Бурундука из книги и улучшил их, чтобы работать и над ИОСОМ и над Операционной системой Mac OS X.

Обновление

Вот скриншот, показывая текущий список проектов шаблона (Привет Kobold2D, Привет Cocos3D, Привет Cocos2D-X, Физика Box2D, Бурундук Физики, Бурундук Физики SpaceManager, Снижение Болвана) и управление шаблона Снижения Болвана:

Обновление Cocos2D в Существующем Проекте

20 мая 2011, в cocos2d, поддержке, Xcode, Штеффеном Иттераймом by Steffen Itterheim

Модернизация cocos2d-iphone является возвращающейся проблемой для многих разработчиков, но так как это происходит так нечасто во время lifecycle проекта, нет только никакой рутины, чтобы следовать. В конечном счете Вы могли бы хотеть модернизировать cocos2d-iphone, таким образом, вопрос возникает: как дела это с наименьшим количеством количества проблемы? how do you do that with the least amount of trouble?

Поскольку я прохожу процесс обновления более чем 70(!) проектов Xcode для второго пересмотра моего Изучать книгу Cocos2D, я думал, что должен обрисовать в общих чертах шаги, чтобы модернизировать существующий Xcode 3 проекта, которые используют cocos2d-iphone v0.99.x для Xcode 4 проекта, которые используют cocos2d-iphone v1.0.x.

Предпосылки: обновление программного обеспечения

Очевидно, Вы хотите загрузить последнюю версию cocos2d-iphone и расстегнуть молнию на ней к любому справочнику. Только помните, где Вы расстегнули молнию на этом, потому что это - то, где Вы скопируете новые папки библиотеки с.

Вы также хотите удостовериться, что Вы модернизировали до Xcode 4 к настоящему времени, устанавливая ИОС 4.3 (или позже) SDK, если Вы так уже не сделали.

Предостережение: Удостоверьтесь, что Xcode закрыт во время первых шагов.

Шаг #1: удалите освобождает содержание папки

В папке Вашего проекта, в этом случае DoodleDrop03, выбирают все папки в, освобождает папку, и удалите их без милосердия:

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

Предостережение: причина, почему я удаляю все библиотеки в, освобождает папку вместо того, чтобы просто переписать библиотеки с новыми, просто: Вы можете ожидать, что обновленная версия cocos2d-iphone удалит или переименует некоторые файлы. Первым удалением всех библиотек Вы можете убедиться, что никакие “файлы зомби” не существуют, которые больше не используются, но могли бы все еще быть собраны, когда Вы позже повторно добавляете библиотеки. Такие файлы зомби ввернули бы процесс сборки и произвели бы ошибки как определенные символы “Дубликата” и другие такие неудачи. you can expect the updated cocos2d-iphone version to have removed or renamed some files. By first deleting all libraries you can be sure that no “zombie files” exist which are no longer used but might still be compiled when you later re-add the libraries. Such zombie files would screw up the build process and generate errors like “Duplicate defined symbols” and other such mishaps.

Шаг #2: скопируйте папки библиотеки

Первая вещь, которую Вы заметите, когда Вы будете хотеть модернизировать освобождение (Box2D, Бурундук, cocos2d, CocosDenshion, cocoslive, FontLabel и ТУЧДЖСОН) состоит в том, что они находятся в различных папках в проекте cocos2d-iphone, что Вы загрузили и расстегнули молнию.

Удостоверьтесь, что Вы выбираете те же самые папки, которые отобраны в скриншоте ниже:

Это различие в расположении папки может быть немного запутывающим. То, о чем Вы должны знать, - то, что Box2D, Бурундук, FontLabel и папки ТУЧДЖСОНА находятся во внешней папке в проекте cocos2d-iphone. Кроме того папка Box2D, которую Вы должны скопировать, является подпапкой Box2d. Отметьте различие в капитализации письма D. Вы хотите скопировать папку с прописными буквами D: Box2D. То же самое идет для папки CocosDenshion, Вы должны выбрать папку CocosDenshion в папке CocosDenshion. Furthermore, the Box2D folder that you should copy is a subfolder of Box2d. Note the difference in capitalization of the letter D. You want to copy the folder with the uppercase D: Box2D. The same goes for the CocosDenshion folder, you should select the CocosDenshion folder inside the CocosDenshion folder.

Предостережение: Удостоверьтесь, что Вы не выбираете папку Испытательного стенда Box2D – если Вы делаете и копия, что также, Xcode 4 мог бы запереть строительство проекта, потребление 100%-ой власти центрального процессора и требование силы, оставленной, чтобы закрыть это.

Отметьте: Если Вы используете только Бурундука или физику Box2D, или ни одного из них, Вы можете пропустить копирование этих папок, конечно.

Чтобы закончить копию opertation, пойдите в, освобождает папку, и приклейте скопированные папки библиотеки так, чтобы Вы закончили с, освобождает папку, которая точно походит на изображение в Шаге #1.

Наконечник: Если Вы предпочитаете бремя и снижение, Вы можете только тянуться, отобранные папки от одного окна Искателя до другого на Ваш проект освобождает папку. Это может быть легче сделать, но Вы должны не забыть удерживать функциональную клавишу, понижаясь так, чтобы Вы фактически скопировали папки вместо того, чтобы переместить их. Операция по копии обозначена зеленым цветом + символ под курсором, как Вы тянетесь & понижаетесь, держа функциональную клавишу. This may be easier to do but you should remember to hold down the Option key while dropping so that you actually copy the folders instead of moving them. The copy operation is indicated by the green + icon underneath the cursor as you drag & drop while holding the Option key.

Шаг #3: Удалите Ссылки Библиотеки

Откройте свой проект в Xcode 4 теперь.

Выберите все группы под cocos2d Исходной группой и совершите нападки, Клавиша Backspace, чтобы удалить эти группы (или щелкнуть правой кнопкой мыши и выбрать Удаляют). Вы будете побуждены с диалогом как в скриншоте ниже.

Удостоверьтесь, что Вы выбираете выбор по умолчанию, Удаляют Ссылки Только, чтобы избежать удалять новые папки библиотеки, которые Вы только скопировали:

Как только Вы удалили группы библиотек, cocos2d Исходная группа должна быть абсолютно пустой. Вы только избавились от всех старых ссылок, спасая вас непосредственно от любых потенциальных ошибок компиляции, вызванных ссылками на файлы, которые, возможно, не существуют больше.

Шаг #4: Добавьте Папки Библиотеки

Затем Вы хотите повторно добавить свои папки библиотеки. Выберите и щелкните правой кнопкой мыши на cocos2d Исходной группе, и избранный Добавляют Файлы к “NameOfYourProject”:

Рассмотрите в проект, освобождает папку, и выберите все папки библиотеки, в которых Вы нуждаетесь в своем проекте.

Вы, возможно, заметили, что мой проект не использует двигателя физики, таким образом, я решил не добавить их здесь. Если бы Вы действительно используете Box2D в своем проекте, Вы хотели бы также выбрать Box2D, конечно. Аналогично, если Вы используете Бурундука. Likewise if you use Chipmunk.

Отметьте: В то время как это не проблема добавить, что обе папки двигателя физики, делая так могли бы увеличить размер Вашего Приложения.

Теперь, вот то, где Вы должны быть осторожными с вариантами! Вы хотите удостовериться, что они установлены точно как в скриншоте ниже. Что наиболее важно добавляя файлы Xcode не выполнит своих обязательств, чтобы добавить файлы к главной цели проекта (в этом случае DoodleDrop) вместо cocos2d цели библиотек. Most importantly, when adding files Xcode will default to add the files to the project’s main target (in this case DoodleDrop) instead of the cocos2d libraries target.

Удостоверьтесь, что только cocos2d цель библиотек отобрана, чтобы избежать, чтобы любой построил ошибки:

Шаг #5: Постройте это!

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

Но наиболее вероятно, в зависимости от сложности Вашего проекта и изменений, произведенных в cocos2d-iphone, Вам, вероятно, придется установить, любой строит ошибки, которые происходят. Большинство из них, вероятно, будет вызвано классами, которые были переименованы или функции, которые были осуждены. В этом случае Вы должны будете узнать через Ссылку API и информацию о версии, что изменения и как установить их. In this case you’ll have to find out through the API Reference and release notes what the changes are and how to fix them.

Установка “недостающего основного SDK” сообщение

Одной общей проблемой, которая происходит определенно с более старыми проектами, является “недостающий основной SDK” ошибка. Я думаю, что это была версия Xcode, начатая с Операционной системы Mac OS X снежных барсов (выпущенный 28-ого августа 2010), который в конечном счете установил эту страшную проблему, добавляя, что “последний ИОС” возможность для Основного SDK Строит Урегулирование.

Если Вы видите сообщение как это (особенно, если оно дает Вам собирать предупреждение или ошибку):

Вы должны измениться, Основные SDK Строят Урегулирование Вашего проекта использовать “Последний ИОС” урегулирование:

Отметьте: В некоторых случаях может быть необходимо закрыть Xcode 4, и вновь открыть это, чтобы сделать “недостающий основной SDK” сообщение уходит.

Правильно Наследование Строит Параметры настройки

Обычно, все цели в Xcode наследуют Построить Параметры настройки проекта по умолчанию.

Однако, как только Вы произвели любое изменение в любом, Строят Урегулирование на целевом уровне, это Строит Урегулирование, больше не будет наследовать, изменения, произведенные в том же самом, Строят Урегулирование на проектном уровне. Реакция по умолчанию многими разработчиками состоит в том, чтобы часто терпеть боль и проверять и перепроверять Построить Параметры настройки проекта так же как всех целей, и производить то же самое изменение так много раз, как у Вас есть цели в Вашем проекте.

Не делайте этого, есть лучший и более легкий путь!

У Вас может быть Построить Урегулирование на целевом уровне к неплатежу назад, чтобы унаследовать Построить Урегулирование, определенное на проектном уровне. Аналогично Построить Урегулирование на проектном уровне может собираться унаследовать настройке по умолчанию OS. В скриншоте ниже я целеустремленно изменил Построить Настройки на целевом уровне: In the screenshot below I have purposefully changed the Build Setting at the target level:

Чтобы иметь это, неплатеж назад к проектному урегулированию, которое является Последним ИОСОМ (ИОС 4.3) все, который Вы должны сделать, должен выбрать, которые Строят Урегулирование и поражают клавишу DELETE:

Наконечник: Переключение от Объединенного до представления Levels, рассматривая Построить Параметры настройки облегчает видеть, которые Строят Параметры настройки, унаследованы и которые не являются. Вы также заметите, что любой Строит Настройки, которые были изменены на текущем уровне и не наследуют, его ценность больше напечатана в выделенных жирным буквах. You’ll also notice that any Build Setting that has been changed at the current level and doesn’t inherit its value anymore is printed in bold letters.

Вот именно!

Счастливое кодирование с Вашим недавно обновленным проектом cocos2d-iphone! Эта обучающая программа модернизации будет также напечатана во втором пересмотре Изучения книги Cocos2D.

Наконечник: С Kobold2D будет еще легче модернизировать Ваш проект, потому что простая копия & паста файлов в kobold2d папке будут достаточны. Если будут когда-либо какие-либо дополнительные шаги, чтобы следовать, то мы опишем их подробно, конечно. If there are ever any additional steps to follow we’ll describe them in detail of course.

Книга cocos2d, Глава 5: Получение, больше и лучше

23 июля 2010, в Объявлениях, книге, Штеффеном Иттераймом by Steffen Itterheim

Глава 5 – Получение больше и лучше

Суть этой главы должна будет обсудить простой проект игры из предыдущей главы. Я бросил все в один класс, ясно не, что Вы хотите сделать для больших игр. Но получение от одного класса до реального кодового дизайна - большой шаг, который некоторые смущаются делать. Я сделаю это легче и буду обсуждать общие вопросы и их решения, такой как, что к seperate, что подклассифицировать от и как у Вас могут быть все объекты seperated, общаются друг с другом и обменивают информацию различными способами. But getting from one-class to real code design is a big step which some hesitate to take. I’ll make that easier and discuss common issues and their solutions, such as what to seperate, what to subclass from and how you can have all the seperated objects communicate with each other and exchange information in various ways.

Большая тема, конечно, будет то, как использовать в своих интересах cocos2d’s иерархию сцены и какие ловушки это может иметь, перемещаясь от игры единственного слоя до того, у которого есть многократные слои и даже многократные сцены.

Что касается названия главы я не настолько уверен, если это будет им. Возможно по пути, в то время как я пишу, что изменю это. Приветствие предложений! Suggestions welcome!

В пятницу, 30-ого июля будет представлена глава.

Каково Ваше взятие на хорошей кодовой структуре cocos2d?

Вы когда-либо боролись с cocos2d концепциями проекта? Или cocos2d иерархия сцены? Или как к расположению сцена и делят Вашу игру на логические части? Скажите мне об этом. Or how to layout a scene and divide your game into logical parts? Tell me about it.

Я знаю, что вопросы о тезисах являются несколько родовыми, чтобы спросить. Именно о вещах не чувствуют себя хорошо, но там, кажется, не лучший, более очевидный путь. Я думаю, что все мы знаем некоторых из тех, если Вы делаете, убедиться, что сказали мне! Оставьте комментарий или напишите мне электронную почту. I think we all know some of those, if you do, be sure to tell me! Leave a comment or write me an email.

Резюме работы над Главой 4 – Сначала простая игра

Игру, которую я хотел делать, называют Снижением Болвана и особенностями, понижающими пауков, и акселерометр управлял иностранцем, пытающимся избегать пауков. В целом это было разделено на 8 конкретных шагов. Партии и много кодовых комментариев, также. Lots and lots of code comments, too.

Это начинает достаточно простые, добавляющие ресурсы к Xcode и добавляющих эльфов. Это получает больше геймплея-esque, когда управляемые акселерометром средства управления игрока щипнули, чтобы обеспечить ускорение и замедление объекта игрока. Напротив, движения пауков стимулируют только действия. In contrast, the spiders movements are driven only by actions.

Я представляю Вас двум недокументированной функциональности cocos2d, а именно, CCArray, который является с тех пор v0.99.4, имел обыкновение хранить всех детей узла. Другой класс CGPointExtension, у которого есть все функции, обычно обеспечиваемые двигателем физики, однако не, каждая игра должна связать двигатель физики только, потому что каждый нуждается в тех математических функциях. Именно поэтому CGPointExtension пригождается. That’s why CGPointExtension comes in handy.

С ccpDistance методом сделаны проверки столкновения. Простые радиальные столкновения, и в режиме отладки радиусы столкновения оттянуты также.

Промежуточный CCLabel для счета был заменен CCBitmapFontAtlas, потому что это убило framerate. Я коротко упоминал Хиро и как использовать это в принципе, но для всех деталей не было никакой комнаты. Но в то время как я был в этом, я создал Обучающую программу Hiero. But while I was at it I created the Hiero Tutorial.

В конце проекта я добавил некоторый блеск, который не описан в книге (слишком много деталей), но действительно добавляет к взгляду игры и чувству. Снижение пауков, висите в там, затем зарядите перед опущением, всеми сделанными действиями использования. Я также добавил нить, которую они вешают от использования ccDrawLine. И затем есть игра закончена лейбл который шоу даже больше использования действия. I’ve also added the thread they’re hanging from using ccDrawLine. And then there’s a game over label which shows even more action use.

Один из принципов, за которыми я следовал, должен избежать неподвижных координат в максимально возможной степени. Таким образом, проект, когда-то законченный, действительно бежал очень хорошо на iPad. Хотя опыт - различный, есть больше понижения пауков, и они понижаются быстрее, но есть также более безопасное пространство, чтобы маневрировать к. Although the experience is a different one, there’s more spiders dropping and they drop faster but there’s also more safe space to maneuver to.

Об и, искусство игры - вся шахта. Да, я знаю …, но у Пауков человека действительно есть только шесть ног! :)