Мы используем:

  • Box2D v2.3
  • Windows 7
  • Code::Blocks 12.11 (MinGW)

Установка Box2D

Скачать и распаковать файлы библиотеки

Скачать Box2D_v2.3.0.7z и распаковать его (в какой папке — не имеет значения).

Собрать release- и debug-версии библиотеки

Вместе с библиотекой поставляются файлы проектов Visual Studio 2010 (*.vcxproj), которые можно импортировать в Code::Blocks.

Импорт проектов Visual Studio до версии 2008 включительно (файлов *.vcproj) выполнялся с помощью меню File/Import Project/MS Visual C++ Project.... Однако, начиная с Visual Studio 2010, изменился формат и расширение файлов проекта. Новое расширение .vcxproj Code::Blocks пока не поддерживает. Поэтому импорт выполняется так как указано выше. Сам импорт для Box2D выполняется корректно.

  1. Импортируем проект Box2D.vcxproj. Для этого в меню File/Import Project выбираем любой тип проекта. Далее в списке типов файлов указываем All files (.) и в списке файлов каталога Box2D/Build/vs2012/ выбираем Box2D.vcxproj.[release].a

Проверить работоспособность: приложение HelloWorld

cselect.png

Box2D.png

  1. Собираем debug-версию библиотеки (Build Target: Debug Win32). Переименуем полученный файл libBox2D.a в libBox2D-debug.a

  2. Собираем release-версию библиотеки (Build Target: Release Win32). Переименуем полученный файл libBox2D.a в libBox2D-release.a

Установить библиотеки и заголовочные файлы

  1. Скопировать libBox2D-debug.a и libBox2D-release.a в каталог %%MinGW%%/lib (%%MinGW%% — каталог, в который установлен компилятор MinGW).
  2. Скопировать каталог с заголовочными файлами Box2D (/Box2D_v2.3.0/Box2D/Box2D/) в %%MinGW%%/include/.

Добавить в опции компоновщика

Project > Build Options > Debug/Release > Linker Settings > Add > /usr/local/lib/libBox2D-debug.html

В Code::Blocks создаем проект HelloWorld (Можно импортировать имеющийся HelloWorld.vcxproj. Однако исправлять его дольше, чем создать новый проект.). В опциях компоновщика указываем libBox2D-debug.a (или libBox2D-release.a). Добавим в проект файл HelloWorld.cpp из /Box2D_v2.3.0/Box2D/HelloWorld/. Проверяем, как компилируется и работает. В HelloWorld.cpp моделируется падение квадрата на твердую поверхность.

Установка Testbed

Испытательный стенд (Testbed) представляет собой простейшее средство для тестирования и визуализации результатов работы модулей, использующих библиотеку Box2D. Testbed не является частью библиотеки и, как видно из примера HelloWorld, Box2D вполне можно использовать без каких-бы то ни-было средств визуализации. Тем не менее Testbed может оказаться полезен, особенно на начальных этапах освоения Box2D, так как он содержит множество примеров использования библиотеки.

Вот некоторые из возможностей Testbed:

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

Testbed написан с использованием freeglut и GLUI, поэтому первый шаг работы с ним состоит в том, чтобы...

Собрать GLUI и freeglut

Поступаем аналогично тому, как делали при сборке библиотеки Box2D:

  1. импортируем соответствующий проект;
  2. собираем библиотеку в debug- и release-версиях;
  3. копируем файлы библиотек в %%MinGW%%/lib;
  4. копируем заголовочные файлы в %%MinGW%%/include/.

Импортировать и настроить проект Testbed.vcxproj

  1. импортируем проект;
  2. удалим имеющиеся опции компоновщика и добавим вместо них в поле Link Libraries:
/usr/local/lib/libBox2d-[debug|release].a
/usr/local/lib/libGLUI-[debug|release].a

в поле Other Linker options:

-lopengl32 -lglu32 -lfreeglut

См. также здесь.



Комментарии

comments powered by Disqus