私はどうしても自分が気に入るAPIでしかプログラムを書きたがらない病を患っているようです。
私のライブラリはこんな風に使います。
#pragma comment(linker, "/subsystem:windows /ENTRY:mainCRTStartup")
#include
#include
int main(int argc, char * argv[])
{
spa::manager::init(&argc, argv);
spa::sound bgm;
bgm.load("test.wav");
bgm.loop();
spa::image tex;
tex.load("texture.bmp");
tex.x(0.0f);
tex.y(0.0f);
while (spa::manager::ok())
{
float speed = 2.0f;
if (spa::key::pushing(spa::key::up))
{
tex.y(tex.y() + speed);
}
if (spa::key::pushing(spa::key::right))
{
tex.x(tex.x() + speed);
}
if (spa::key::pushing(spa::key::down))
{
tex.y(tex.y() - speed);
}
if (spa::key::pushing(spa::key::left))
{
tex.x(tex.x() - speed);
}
spa::manager::clear();
tex.draw();
spa::manager::show();
}
return 0;
}
シンプルこそが正義です。
ライブラリ作成用のプロジェクトとそのライブラリを利用して上記コードを作成したプロジェクトをセットにしたソリューションフォルダ一式(VisualStudio2013用)を公開しておきます。
興味がある方はこのリンクからダウンロードできます。
※ただし自分専用のためコメントは全くと言ってよいほど記載されていません
それはそうと、ライブラリプロジェクトってビルドした後、生成されたlibファイルをライブラリのフォルダに移動してデバッグ用は名前変えて…って面倒ですね。
だったらライブラリやめてソースファイル全部プロジェクトに追加すればいいだけって言われるかもしれませんが、ライブラリはライブラリとして管理したいです。
そこで、バッチファイルを書いてみたのですがなぜかファイルがコピーされないという結果に…。
copy /B /Y でばっぐふぉるだー\spacs.lib らいぶらりふぉるだー\spacsd.lib
copy /B /Y りりーすふぉるだー\spacs.lib らいぶらりふぉるだー\spacs.lib
まあ、何か間違っているのでしょう。
バッチファイルとか普段全く書きませんし。
コマンドとかよくわかりませんし。
そういえばVisualStudioの設定で出力ファイルのパスを設定できたはずなので、そちらの方法でも良さそうですね。
というわけで次回はその問題の解決を試みます。
それと、現在はBMP画像しかロードできません。
これではあまりにもお粗末ですから、透明情報を含む画像ファイルの形式を独自に定義して(alphamapと名付けます)、透過色を指定してbitmap->alphamap変換を行うソフトを作り、alphamap画像もロードできるようにします。
今回はここまでです。
それでは楽しいプログラミングライフを!