SDXFrameWork  0.07
SDXFrameWork
 全て クラス ネームスペース 関数 変数 列挙型 列挙型の値 ページ
SDXの導入方法(Windows)

SDXFrameWorkの使用には
「SDXFramework_DXIB」または「SDXFramework_SDL2」
「VisualStudio2013」
が必要です。
Windows環境の場合、コンパイラは「VisualC++ 2013 Express Edition for Desktop」を推奨しています。
識別子にUnicodeを使用している関係で、gccでコンパイルする事は出来ないと思われます。
VisualStudio2013以外の環境については、現在サポートしていません。


1 VisualStudioをインストールする
C++の文法準拠の関係で、VisualStudio2012以前のコンパイラは使用できません。
Visual Studio のダウンロード
「Visual Studio Express 2013 for Windows」と
「Visual Studio Express 2013 for Windows Desktop」がありますが
Desktopの方しか使えないので、注意して下さい。
また使用しているOSがWindowsXPやVistaの場合、VisualStudio2013がインストール出来ないため、SDXは使用できません。
詳細なインストール方法やライセンス登録については、「VisualStudio 2013 インストール」でGoogle検索するといくつかキャプチャ付きの記事が見つかると思うので
それらを参考にしてください


2 SDXFrameWorkをダウンロードする
下記サイトで最新版を配布しているので、リンク先からダウンロードして下さい
SorceForge
解凍すると「SDXFramework_DXLIB」と言うフォルダが出来るので、適当な場所において下さい。
SDL版を使う場合は「SDXFramework_SDL2」を使って下さい。


3.1 新規プロジェクトの作成、DXLIB版
DXLIB版は3.1、SDL版は3.2の設定をして下さい。

VisualStudioを起動したら新規プロジェクトを作成します。
大体DXライブラリと似た方法になるので、そちらも参考にして下さい。

参考: VisualStudio Express 2013 for Windows Desktop を使用した場合のDXライブラリの使い方

新規プロジェクトを作成する
①上部メニューの「ファイル」の「新しいプロジェクト」からWin32アプリケーションのプロジェクトを作成します。プロジェクト名は好きなように付けて下さい

②Win32アプリケーション ウィザードが開くので、一回「次へ」をクリックします。
空のプロジェクトにチェックを入れて、完了をクリックして下さい。

プロジェクトを設定
①上部メニューの「プロジェクト」をクリックし「プロパティ」をクリックし、設定ダイアログを開きます。

②ダイアログ左上の構成を「アクティブ(Debug)」から「全ての構成」に変更します

③ダイアログ左の「構成プロパティ」→「全般」を選びます
右の「文字セット」の項目を、「マルチ バイト文字セットを使用する」にして、ダイアログ右下の「適用」ボタンをクリックします。

④ダイアログ左の「構成プロパティ」→「C/C++」→「全般」を選びます。
追加のインクルードディレクトリに先ほど解凍した「SDXFramework_DXLIB」を追加し、「適用」ボタンをクリックします。

⑤ダイアログ左の「構成プロパティ」→「リンカー」→「全般」を選びます。
追加のライブラリディレクトリに先ほど解凍した「SDXFramework_DXLIB」の中にある「DXLib」のフォルダを追加し、「適用」ボタンをクリックします。

⑥ダイアログ左上の構成を「全ての構成」から「Release」に変更します。

⑦ダイアログ左の「構成プロパティ」→「C/C++」→「コード生成」を選びます。
右の「ランタイム ライブラリ」の項目を、「マルチスレッド (/MT)」に変更して、ダイアログ右下の「適用」ボタンをクリックします。

⑧ダイアログ左上の構成を「Release」から「Debug」に変更します。
右の「ランタイム ライブラリ」の項目を、「マルチスレッド デバッグ (/MTd)」に変更してダイアログ右下の「適用」ボタンをクリックします。

⑨最後にダイアログの右下にある「OK」を押してダイアログを閉じます。


3.2 新規プロジェクトの作成、SDL2版
プロジェクトの作成
①上部メニューの「ファイル」の「新しいプロジェクト」からWin32アプリケーションのプロジェクトを作成します。プロジェクト名は好きなように付けて下さい

②Win32アプリケーション ウィザードが開くので、一回「次へ」をクリックします。
空のプロジェクトにチェックを入れて、完了をクリックして下さい。

プロジェクトを設定
①上部メニューの「プロジェクト」をクリックし「プロパティ」をクリックし、設定ダイアログを開きます。

②ダイアログ左上の構成を「アクティブ(Debug)」から「全ての構成」に変更します

③ダイアログ左の「構成プロパティ」→「C/C++」→「全般」を選びます。
追加のインクルードディレクトリに先ほど解凍した「SDXFramework_SDL2/jni/SDL/include」を追加し、「適用」ボタンをクリックします。

④ダイアログ左の「構成プロパティ」→「リンカー」→「全般」を選びます。
追加のライブラリディレクトリに先ほど解凍した「SDXFrameWork_SDL2/Windows/lib/x86」を追加し、「適用」ボタンをクリックします。

⑤最後にダイアログの右下にある「OK」を押してダイアログを閉じます。

dllのコピー
SDXFrameWork_SDL2/Windows/dll/x86の中にあるdllファイルを実行ファイルが作成されるフォルダと同じ場所にコピーします


4 サンプルソースのビルド
画面左側の「ソリューションエクスプローラー」の「ソースファイル」フォルダを、
右クリックして「追加」→「新しい項目」から.cppファイルを追加して下さい。
ファイル名は何でもかまいませんが「main.cpp」にして下さい。
追加したcppファイルに以下のコードをコピペして、コンパイルして実行して下さい。

#include <SDXFrameWork.h>
#include <Multimedia/SDXafx.h>
using namespace SDX;
int main(int argc, char* argv[])
{
System::Initialise("sample", 640, 480);//ライブラリの初期化
int x = 320;
int y = 240;
while (System::Update())
{
if (Input::pad.Down.hold) y += 5;
if (Input::pad.Up.hold) y -= 5;
if (Input::pad.Right.hold) x += 5;
if (Input::pad.Left.hold) x -= 5;
Drawing::Rect(x-10, y-10, 20, 20, Color::White, true);
}
System::End();//ライブラリの終了処理
return 0;
}

画面に白い□が表示され、カーソルで移動出来れば導入成功です。
失敗した場合は、もう一度手順を確認して下さい。
よくわからない場合は、掲示板で「新しい話題を始める」をクリックして質問して下さい。
SDXFrameWork:ヘルプフォーラム


5 プリコンパイル済みヘッダーを利用する
SDXは色々な理由があって、大半のコードをヘッダーに実装しており、普通にコンパイルすると時間が余計にかかります。
そのため、プリコンパイル済みヘッダーを使う事を推奨しています(使わなくても動作はします)

ファイルを追加する
画面左側の「ソリューションエクスプローラー」の「ソースファイル」フォルダを右クリックして
「追加」→「新しい項目」から.cppファイルを追加して下さい。
ファイル名は「pre_compile.cpp」にして下さい。

次に画面左側の「ソリューションエクスプローラー」の「ヘッダーファイル」フォルダを右クリックして
「追加」→「新しい項目」から.hファイルを追加して下さい。
ファイル名は「stdafx.h」にして下さい。

ファイルを編集する
pre_compile.cpp(cppとhを間違えないで下さい)には

#include "stdafx.h"
#include <Multimedia/SDXafx.h>

と入力して下さい。

stdafx.hには

#include <SDXFrameWork.h>

と入力して下さい。

先ほどの「main.cpp」の

#include <SDXFrameWork.h>
#include <Multimedia/SDXafx.h>

の三行を

#include "stdafx.h"

に変更します。

プリコンパイル済みヘッダーの作成と使用設定
画面左側の「ソリューションエクスプローラー」の「main.cpp」を右クリックし「プロパティ」を開きます。
ダイアログ左の「構成プロパティ」→「C/C++」→「プリコンパイル済みヘッダー」を選択します。
画面右の「プリコンパイル済みヘッダー」を「使用 (/Yu)」に変更し、画面右下の「OK」をクリックします。

次は「ソリューションエクスプローラー」の「pre_compile.cpp」を右クリックし「プロパティ」を開きます。
ダイアログ左の「構成プロパティ」→「C/C++」→「プリコンパイル済みヘッダー」を選択します。
画面右の「プリコンパイル済みヘッダー」を「作成 (/Yc)」に変更し、画面右下の「OK」をクリックします。

これで、コンパイルが通る事を確認して下さい。

もし「main.cpp」以外に他の.cppファイルを追加する場合は、そのファイルも「main.cpp」と同じ設定をして、

#include "stdafx.h"

をファイルの先頭に書いて下さい。


6 プリコンパイル済みヘッダーだけ最適化する
※この設定は必須ではありません
デバッグビルドが遅い場合は、プリコンパイル済みヘッダーのみ最適化する事が出来ます。
デバッグビルドで処理落ちしない場合は、この設定をする必要はありません。

※VC++のバグなのか、1項目ずつ適用しないと、フリーズする事があります。
①画面左側の「ソリューションエクスプローラー」の「stdafx.cpp」を右クリックし「プロパティ」を開きます。

②ダイアログ左上の構成を「アクティブ(Debug)」か「Debug」にします。

③ダイアログ左の「構成プロパティ」→「C/C++」→「全般」を選択します。
画面右の「デバッグ情報の形式」を「プログラム データベース (/Zi)」に変更し、画面右下の「適用」をクリックします。

④ダイアログ左の「構成プロパティ」→「C/C++」→「最適化」を選択します。
画面右の「最適化」を「実行速度の最大化 (/O2)」に変更し、画面右下の「適用」をクリックします。

⑤ダイアログ左の「構成プロパティ」→「C/C++」→「コード生成」を選択します。
画面右の「基本ランタイムチェック」を「既定」に変更し、画面右下の「適用」をクリックします。
その後、隣の「OK」をクリックして、設定を完了させます。

これで、ある程度処理が早くなります。
コンパイル時に警告メッセージが表示されますが、無視して下さい。


7 エディットコンティニュを有効にする
※この設定は必須ではありません
ゲーム開発の場合、例えば敵キャラの動きを少し変えるとか、キャラクターの台詞を少し変えるとかする度に
プログラムを終了して、再コンパイルし実行するのは非常に手間がかかり面倒です。
lua等のスクリプトを使ったり、外部のリソースにしても良いのですが、それはそれで手間です。

VisualStudioを使う場合、エディットコンティニュを使えば、実行中に差分コンパイルが可能です。
多少制約はあるものの、使いこなせば相応に強力なのでVisualStudioを使うなら、是非とも使いましょう。

設定方法
①上部メニューの「デバッグ」を開き「オプションと設定」をクリックしダイアログを開きます。

②一覧から「デバッグ」→「エディットコンティニュ」を選択します。

③「ネイティブのエディットコンティニュを有効にする」にチェックを入れ、画面右下の「OK」をクリックします。
エディットコンティニュの利用
①先ほど書いたサンプルをデバッグ実行します。

②実行中にソースを編集します。xやyに足したり引く値を5から15に増やして下さい。

③上部メニューの「デバッグ」→「コード変更を適用」をクリックします。

④差分コンパイルが開始しすぐに終わります。カーソルキーでの移動速度が3倍になっていれば成功です。

開発初期の全体的な設計の段階では、エディットコンティニューはそこまで便利ではないですし、
複数人で開発していて、スキル差が大きいのでスクリプトを使う場合や、スクリプトで追加データを配布したい場合等
エディットコンティニュが万能かと言うと、そうではないですが、VisualStudioを使うなら抑えておきたい機能です。


8 プロジェクトのテンプレートを作成する。
VisualStudioでは一度作成したプロジェクトを雛形として保存する事が出来ます。
テンプレートを作成しておけば、次回以降のプロジェクト新規作成が楽になります。

①画面上部の「ファイル」から、「テンプレートのエクスポート」を選択します。

②ダイアログが開くので、プロジェクトテンプレートが選択されているのを確認して「次へ」をクリックします。

③テンプレート名と、テンプレートの説明を書いて、「完了」をクリックします。
テンプレート名は「SDXテンプレート」等として下さい。

④画面上部の「ファイル」から、「あたらしいプロジェクト」を選択します。
C++用のテンプレートが追加されていれば成功です。次回以降はこれを選択してプロジェクトを作成する事が出来ます。


9 完成したソフトを配布する。
DXLib版の場合Releaseビルドして、exeファイルと必要なリソースを配布して下さい
SDL版の場合Releaseビルドして、exeファイルとdllファイルと必要なリソースを配布して下さい