Как использовать Cocos2d для создания такой игры? - PullRequest
2 голосов
/ 18 июня 2010

http://itunes.apple.com/us/app/angry-birds/id343200656?mt=8&ign-mpt=uo%3D6

Итак, я начинаю работать с этой игрой на iphone и решил, что начну играть с Cocos2d в качестве стартового движка.

Теперь, когда у меня есть цель, я выбрал сердитых птиц в качестве своей начальной цели, какую игру я бы хотел научиться строить. Это , а не , которая будет выпущена на рынке. Это всего будет только в учебных целях.

Итак, для начала мой вопрос:

  • Будет ли что-то подобное достижимо при использовании Cocos2d?
  • Как бы я занялся построением физики для этого?
  • Как можно сделать прокрутку экрана, как в cocos2d? (любой пример кода был бы хорош)

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


Еще несколько вещей, которые меня интересуют:

  • анимированные спрайты. Как создать это? Это функция Cocos2d, или я могу использовать UIImageView?
  • поддержка перетаскивания. Как они обнаруживают, что я тащу птицу?
  • Еще вопрос графики: как они анимируют эффект "растягивания полосы"?

ура


Прогресс

Так что я смог настроить мир в Cocos2d вместе с box2d, и теперь у меня есть несколько блоков, которые сталкиваются и симулируют физику. Теперь у меня возникли проблемы, которые, я думаю, могут быть решены с помощью дальнейших советов / справки / учебных пособий.

  1. Как заставить спрайт двигаться по дуге? Например, когда вы бросаете птицу, она движется по кривой. Как я могу рассчитать это? где эта логика идет? (встроенный или должен быть закодирован?)

  2. Как мне создать мир (карты), где определенные блоки статичны, а некоторые - хрупки? Стоит ли искать поддержку SVG в cocos2d?

  3. Как мне симулировать столкновение, как у злых птиц?

веселит.

Ответы [ 3 ]

4 голосов
/ 18 июня 2010
  1. Такая игра, как Angry Birds, определенно возможна при использовании cocos2d.

  2. Вы обязательно должны использовать box2d или бурундук.Я бы порекомендовал box2d, так как мне было легче понять.Основная идея состоит в том, что вы создаете тело box2d для каждого спрайта, например, птицы и части структуры являются отдельными телами.

  3. Основная идея заключается в создании слоя, которыйбольше, чем экран, который содержит все, а затем переместите этот слой вокруг.Чтобы разрешить прокрутку касанием, вам нужно будет отследить, насколько далеко перемещается касание в методах начала / перемещения / завершения касания, и соответственно переместить слой.Вы также можете использовать действие CCFollow для имитации камеры, следящей за птицей по воздуху.

Изменить для других вопросов:

  1. Анимации спрайта обрабатываются с использованием CCSpriteSheet.Вы можете увидеть больше в руководстве по программированию .

  2. Вы определяете, куда вы перетаскиваете птицу, используя местоположение касания, которое довольно просто, когда вы пишете касаниеметоды.Опять же, обратитесь к руководству по программированию .

  3. Я не уверен в лучшем способе растянуть полосу.Один из способов - использовать несколько спрайтов (по одному для каждой стороны полосы, по одному для «мешочка» в середине) и растягивать / поворачивать их по мере необходимости.

1 голос
/ 10 ноября 2010

Как создать игру, подобную Angry Birds?

, в которой вы можете изменить: http://goodsteven.blogspot.com/2010/10/how-to-make-game-like-angry-birds.html

BeBeWoo Lite инструменты / библиотеки, используя:

  • Cocos2D для iPhone (0.99.4) (ObjC)
  • Box2d (C ++)
  • XML или PList для данных уровня -
  • Редактор уровней (включен в игру или нет)
  • Редактор шрифтов: Hiero
  • Редактор спрайтов: Zwopte

0 голосов
/ 18 июня 2010

Некоторые идеи:

  • Это выглядит достижимо в cocos2d.
  • cocos2d интегрируется с двумя физическими движками: box2d и ChimpMunk. Вы должны попробовать один из них.
  • Вы можете проверить образцы (или документы) о прокрутке параллакса, чтобы получить некоторые из них, а затем проверить, что обеспечивает управление касанием cocos2d.

Как примечание: парень, который разрабатывает cocos2d, продает исходный код Sapus Tongue (его игра), который может оказаться полезным для вас, чтобы начать работу.

...