10 января 2014

box2d + as3, с чего начать и чем закончить.

Самое простое толкование, я думаю, вот такое: Box2d - это физический движок. Видите, как просто?! Так как выражение "физический движок" у всех на слуху, то я позволю себе только добавить, что 2d в конце названия намекает на то, что физические объекты располагаются в двумерном пространстве, на плоскости.
Если честно - то это очень клевая штука, которую я постоянно использую во всех своих играх. Хотите реалистичную физику в свою двумерную игру? Можете смело браться за Box2d! Есть и конкуренты, поэтому выбор остается за вами.
Сегодня не день рекламы Box2d, я просто поделюсь ссылками, которые лично я считаю полезными. Круто? Конечно, круто! Заходите, думаю, не пожалеете.
Старт Начнем с того, "где скачать". Для as3 я видел только этот порт. Если знаете, где найти свежее (а сейчас там только 2.1a) - делитесь!
Обычно я читаю официальный мануал на английском. Но так как версия порта с каждым годом все сильнее расходится с официальной версией для Си, то иногда приходится заглядывать в мануал для 2.1a. Можно и на русском найти, если не хотите вдаваться в трудности перевода. Но есть свои опасности (как-то в русском варианте не было указано, что при создании сочленений для дальнейшего использования в Gear-сочленении, первым нужно указывать статическое тело). Но это так, к слову пришлось...

Первое использование
Лично я использовал Box2d задолго до изучения as3. Поэтому передо мной стоял вопрос только о том, как внедрить этого зверя в конкретно as3-окружение. Помогли эти видео-уроки (1, 2, 3). Но можно найти и другую информацию, например выглядит хорошим вот этот тутор. Когда писал это сообщение и искал подходящую исконку, наткнулся на очередной тутор, не знаю, что это, но, возможно, пригодится!
От себя скажу, что по сути нужно скачать архив отсюда, а дальше все как обычно. Подключаем соответствующие модули и начинаем создавать необходимые объекты друг за другом: сначала сам мир, потом тела с геометрией, затем сочленения. Мир апдейтим, все движется.

Что дальше?
После успешного старта, как обычно, в голову начинают лезть всякие клевые механики. Дерзайте! Сначала рекомендую заглянуть к Феронато, он уже много всего продемонстрировал у себя. Разрушаемый ландшафт, радиальная гравитация, вода из шариков, арканоид, машинки, катапульты и много чего он уже пилил и выкладывал исходники... Глаза уже загорелись? Так заходите, не стесняйтесь!
Также есть парень с ником , на его сайте есть отдельные туторы по боксу.
Совсем недавно наткнулся на то, что один саморетянин портирует некоторые части из официального бокса на флеш. Похвально! Будем ждать продолжение!

Как это сделать?
В итоге, чаще всего я просто сталкиваюсь с какой-то отдельной заковыркой. Вроде "почему не работает pulley-сочленение?" Или "как сдетектировать удар?" Ну, в общем, вы поняли... Вариантов решения много: сначала иду с поклоном к гуглу, затем просматриваю официальный форум, провожу эти итерации несколько раз. Затем иду на наш форум и спрашиваю у местных. Чаще всего нахожу ответ сам, но иногда помогают и камрады. Круто!

А причем тут Лампоголовый?
Я особо ни при чем. Просто решил написать вот такое короткое сообщение. Как видите, информации в сети огромное количество, туторов написано много, статей бесчисленное количество, страниц форума исписаны десятки тысяч. Поэтому писать что-то от себя уже нет особого смысла... Но с чем-то определенным я помогу!
Всегда можете спрашивать что-нибудь у меня здесь - я попробую ответить! Дело в том, что я учился на физика, поэтому мне эта тема более-менее близка. Конечно, ядерный реактор в гараже не соберу, но вот с box2d подсобить попробую :)

Вдохновение
На боксе делали уже танки, супер-реалистичные велосипеды, реалистичные взрывы, воду, веселого боксера, и даже вот такую ерунду. Так что не останавливайтесь на "машинках сбоку", злых птицах или всяких катящихся конфетах. Хотя поначалу именно такие три-четыре игры и стоит сделать!
Физика - огромный мир, выйдет еще много хитовых игр, основанных на физических взаимодействиях. Вперед!

Сообщения, схожие по тематике:

10 коммент.:

  1. Круто!
    Спасибо за пост, узнал про iforce2d :) Подсмотрел несколько интересных механик, записал себе в блокнотик к реализации :)

    ОтветитьУдалить
    Ответы
    1. не за что!
      ничего себе ты генератор идей! а вот у меня что-то застой... новые механики никак не приходят((

      Удалить
  2. Nape для флеша побыстрее будет )
    http://napephys.com/
    http://napephys.com/samples.html

    ОтветитьУдалить
    Ответы
    1. спасибо за комментарий!
      несомненно, nape быстрее.
      просто я не использовал его ни разу)) бокс как-то роднее что ли))

      Удалить
  3. Привет.

    Предполагаю, у вас есть своя надстройка над Box2D.
    Не затруднит ли ею поделиться? )

    ОтветитьУдалить
    Ответы
    1. я не буду отмазываться фразами вроде "у меня код не причесан"... а просто скажу, что я не выкладываю код, который используется в коммерческих проектах. такое вот небольшое табу.
      я могу выложить отдельные элементы, но не весь код (а бокс2д у меня грубо прирос к проекту)
      это моя жадность и зависть, признаюсь...

      p.s. если нужно - могу рассказать принцип работы, да...

      Удалить
    2. Ага, расскажите.
      И выложите отдельные элементы, а то мне нужно будет много работать с этим физ. движком.

      Удалить
  4. "ерунда", кстати, весьма похожа на клешню-погрузчик из "mining truck 2" :]

    ОтветитьУдалить
    Ответы
    1. да, сходство есть! робототехнические механизмы рулят! сейчас вспомнил - что надо было vap'овских мехов добавить в обзор, забыл как-то тогда про них совсем...

      Удалить
    2. кстати, не забрасывай свой журнал! он клевый! ждем новых сообщений от тебя!

      Удалить