プログラミング関連の覚え書き集

躓いて解決したりしなかったりした問題のまとめ

Visual Studio 2017 にBox2Dを導入するまで

今回はVisual StudioにBox2Dを導入する方法になります。

 

Box2Dとは

 Box2Dとは物理演算を行うライブラリのことです。通常物理的な演算を行うには非常に複雑な計算をしなければならないのですが、このライブラリはその作業を一手に引き受けてくれます。ゲームなどに使われることが多い印象で、Angry Birdsなんかが有名です。

Box2Dのダウンロード

こちらのページからBox2Dをダウンロードします。

Google Code Archive - Long-term storage for Google Code Project Hosting.

f:id:freesoft-48784:20180901032104p:plain

Box2D_v2.3.0.7zをクリックするとダウンロードできます。

ダウンロードしたファイルは7z形式なので、解凍ソフトを使って解凍してください。

CMakeのダウンロード&インストール

ダウンロードしてきたBox2Dを利用するにはビルドをする必要があります。そのため、まずはビルドをするためのCMakeというソフトを導入します。

CMakeは下記のページからダウンロードできます。

Download | CMake

f:id:freesoft-48784:20180901032838p:plain

自分の使っているOSに合わせてインストールするのですが、上の三つはソフト本体ではないので注意してください。私の使っているOSは64ビットのWindowsなのでcmake-3.12.1.win64-x64.zipをダウンロードします。

あとはzipフォルダを解凍して適当な場所に置けばCMakeの準備は完了です。CMakeを実行するにはbinフォルダ内のcmake-gui.exeファイルを実行すればOKです。

CMakeによるビルド

つづいてBox2Dをビルドしていきます。

まず、ダウンロードしてきたBox2D_v2.3.0フォルダ内の、Box2D\Buildフォルダを開きます。そこにはvs2012、xcode5などのフォルダが入っているかと思いますが、このフォルダ内にビルドしたデータを入れます。しかし今回はVisual Studio 2017用にビルドをしたいので、新しくvs2017というフォルダを作っておきましょう。

次にCMakeを起動します。

f:id:freesoft-48784:20180901034455p:plain

一番上にWhere is the source code:とあるので右のBrouse Sourceボタンを押してBox2D_v2.3.0/Box2Dフォルダを指定します。さらにその下のWhere to build the binaries:も右のBrouse Buildボタンを押して、先ほど作ったvs2017フォルダを指定します。その後右下のほうにあるConfigureボタンを押してVisual Studio 2017を指定します(最初から指定されている可能性が高いです)。すると一番下のログに色々と表示されるので、最後にConfigure doneと表示されるまで待ちます(中央のリストが赤くなりますが問題ありません)。表示されたらGenerateを押してビルドは完了です。vs2017フォルダにたくさんのファイルが追加されていることを確認してください。

Visual Studioによるビルド

続いてVisual Studioでビルドを行います(CMakeでもVisual Studioでもビルドする意味が私はまだよく分かっていません)。

vs2017フォルダ内のBox2D.slnをVisual Studioで開きます。開いたら上部メニューのビルド→ソリューションのビルドを押すとビルドが始まります。結構時間がかかるので気長に待ちましょう。

ビルドが終わったらVisual Studioを閉じてもいいのですが、サンプルプロジェクトが用意されているのでそちらを見てみましょう。右のソリューションエクスプローラーにあるTestbedを右クリックし、スタートアッププロジェクトに設定を選択します。その後メニューバーの下の「ローカルWindowsデバッガー」を押すとサンプルプロジェクトが実行されます。

f:id:freesoft-48784:20180901040041p:plain

サンプルプロジェクトは右上のRay-Castの部分を変更することでサンプルの種類を選べ、クリックやスペースで遊ぶことができます。TumblerやDominosあたりが面白いです。

Visual Studioのプロジェクトへの導入

 最後にビルドしたBox2DをVisual Studioのプロジェクトで利用できるようにします。

まずはVisual Studioに適当なプロジェクトを作ります。ここではWin32コンソールアプリケーションを作ったことにします。

次にBox2D_v2.3.0フォルダを安全な場所に移動させておきましょう。適当なところに置いておくとうっかり消したり移動させたりしてしまいかねません。今作ったプロジェクトのフォルダ内などが良いでしょう。

続いて、ソリューションエクスプローラーのプロジェクト名を右クリックしてプロパティを選択し、プロジェクトのプロパティウィンドウを開きます。ここでBox2Dの場所を指定していきます。

f:id:freesoft-48784:20180901042132p:plain

まずは左の構成プロパティからC/C++を選んで一番上の追加のインクルードディレクトリの欄にBox2D_v2.3.0\Box2Dフォルダを指定します。

さらに構成プロパティのリンカーへ移動し、追加のライブラリディレクトリ欄にBox2D_v2.3.0\Box2D\Build\vs2017\Box2D\Debugを指定します。

最後に同じくリンカーの中の入力へ移動し、追加の依存ファイル欄にBox2D.libファイルを指定します。このファイルはVisual Studioによるビルドで生成されたファイルです。

あとはOKボタンでプロパティウィンドウを閉じればBox2Dの導入は完了です。ソースコード内からBox2D.hをインクルードすれば利用することができます。今回はC++なので

#include "Box2D\Box2D.h"

となります。

参考にさせていただいた記事

Box2Dの導入(VS2013とXcode7.1.1の例) – GDExplorer

VisualStudioで外部ライブラリを読み込めるようにする方法 | Corgi Lab. 〜備忘録のための技術ブログ〜