本書のソースコードは、原著者Mike McShaffry氏の意向により、著者サイトでの配布となっております。
「ソースコードといものは本の出版以降も修正されたり手を加えられたりし続けるものだらだ。また、読者からソースコードに対する提案や修正が助言されることもある。したがて、最新のソースコードや情報は、私のWebサイトから随時入手してほしい。
-Mike McShaffry
なお、原著出版時からLuaPlusなど各種ライブラリの仕様が変わっています。そのために発生したソースコードのアップデート情報は原著者のサイトhttp://www.mcshaffry.com/GameCode/ の掲示板にて、情報が共有されています。本サポートページでは、現在推奨される最新環境にて、ビルドできる手順を紹介します。なお、このサンプルコードは本書内容の学習目的のために作成されております
OS: Windows 7/XP
開発環境: Visual Studio 2008 SP1
手順
■ダウンロード
1.
下記ファイルをダウンロードします。
●DirectX SDK
http://msdn.microsoft.com/ja-jp/directx/default.aspx
DirectX SDK をインストール(Feburary2010)し、Visual Studio 2008 の[ツール]→[プション]→[プロジェクトおよびソリューション]→[VC++ディレクトリ]にて、
インクルードフォルダに
C:Program Files (x86)Microsoft DirectX SDK (February 2010)include
ライブラリフォルダに
C:Program Files (x86)Microsoft DirectX SDK (February 2010)lib
を指定します。
●本書サンプルコード
http://gamecode3.googlecode.com/svn/trunk
から svn を使ってチェックアウトします。GameCode3 フォルダに中身が展開されます。
●3rdParty Library
http://code.google.com/p/gamecode3/downloads/list
3rdParty-2.zip をダウンロードし、展開します。
3rdParty フォルダ内に
– boost_1-37_0
– bullet-2.73
– LuaPlus
– oggvorbis-win32sdk-1.0
の4つのフォルダがあることを確認します
2.
3rdParty フォルダを GameCode3/Source 内に移動します。
3.
3rdParty/LuaPlus/Src/LuaPlus/LuaPlus.vs2005.vcproj を Visual Studio 2008 で開きます。変換ウィザードが出たら、変換します。
4.
“TeapotWarsプロジェクト”を右クリックし、”スタートアップ プロジェクトに設定”を選択
5. “TeapotWarsプロジェクト”を右クリックし、[プロパティ]→[構成プロパティ]→[デバッグ]→[作業ディレクトリ]に”….Bin”を指定します。
■ソースファイルのアップデート
1.
LuaPlus.cpp 内の
line 137: LuaState_UserStateOpen_Internal(L);
line 143: LuaState_UserStateThread_Internal(L, L1);
line 149: LuaState_UserStateFree_Internal(L);
を
line 137: LuaPlus::LuaState_UserStateOpen_Internal(L);
line 143: LuaPlus::LuaState_UserStateThread_Internal(L, L1);
line 149: LuaPlus::LuaState_UserStateFree_Internal(L);
と書き換えてリビルドします。
2.
3rdParty/LuaPlus/Bin/LuaPlusD_1100.dll ができるので、
GameCode3/Bin にコピーします(上書き)
3.
GameCode3/Source/GameCode3_2005.sln を VS2008 で開きます。変換ウィザードが出るで変換します。
4.
DXUT10/DXUT.h の105行目
#include <dxerr9.h>
を
#include <dxerr.h>
に書き換える
5.
GameCode3/actors.hの 107行目付近に、下記の行を追加します
using LuaPlus::LuaObject; // <<<この行を追加
using LuaPlus::LuaState; // <<<この行を追加
struct ActorParams
{
6.
GameCode3/Scripting/LuaStateManager.h の40行目付近に、下記の行を追加します
#include “LuaPlus/LuaObject.h”
using LuaPlus::LuaStateOwner; // <<<この行を追加
using LuaPlus::LuaObject; // <<<この行を追加
7.
ScriptEventListener.cpp の
#include “../GameCode.h” のあとに
using LuaPlus::LuaFunction; // <<<この行を追加
8.
TeapotWars.cpp の
#include “EventManagerEventManagerImpl.h” のあとに
using LuaPlus::LuaFunction; // <<<この行を追加
■ビルド
1
GameCode3プロジェクトをビルドします
Lang プロジェクトをビルドします。
TeapotWars プロジェクトをビルドします。