2011年2月7日月曜日
遠い目
爆 発 し た ! ! !
ということで、12月に一個アレなゲームを作って身内とかしらん人にプレイしてもらったら
そこそこの評判だったけど基本アレだったので
そのまま横になってふとんに入り込んでLOL(League of legends)やってたらこんな時期になりました。
俺は正直に生きることにしました!!11
360度STGは大海原(主にツール製作中)
うさえほは五里霧中と
規模がでかい物つくろうとするとやっぱり俺じゃ爆発するので。
今後は目標月1ペースでミニゲームぽちぽち作って、面白いなら公開してければなと思います。
とりあえず今週は企画的なものを起こしたのでそれをもとに作っていきます。
今回の目標は3Dを入れること!
といってもDXライブラリあるからそこまで難しくないと思うけど…
あとはBOX2Dとの絡みが厄介そうだけどまぁ、XとYだけ見てたら大丈夫かXD
ちなみにアレだったゲームの画面はこちら。
アレだ…
内容は
鶏が産みまくるひよこをひたすら上の●に入れ続けるゲームでした。
●の中に入れて数秒たてばひよこは浄化される。
画面外にひよこがぶっ飛んだら死ぬ、
死んだらひよこの頭が飛んでいく。血しぶきがすごいことになる。
浄化した数/2 の死亡ひよこ数でゲームオーバー
浄化されたり死んだりすると難易度が上がっていって
最終的にはプレイヤーが処理できない量のひよこが沸いて
半強制的にゲームオーバーになるが、画面がひどいことになってて
そこはみんな面白いらしい、くそ
まぁ基本的にプレイ感は悪かった。
一部プレイヤーに大しての配慮も欠けているため、
LUA導入の実験作としてはそこそこ上手く行ったとは思うが、
ゲームとしてはまぁ、アレだった。
ということで、12月に一個アレなゲームを作って身内とかしらん人にプレイしてもらったら
そこそこの評判だったけど基本アレだったので
そのまま横になってふとんに入り込んでLOL(League of legends)やってたらこんな時期になりました。
俺は正直に生きることにしました!!11
360度STGは大海原(主にツール製作中)
うさえほは五里霧中と
規模がでかい物つくろうとするとやっぱり俺じゃ爆発するので。
今後は目標月1ペースでミニゲームぽちぽち作って、面白いなら公開してければなと思います。
とりあえず今週は企画的なものを起こしたのでそれをもとに作っていきます。
今回の目標は3Dを入れること!
といってもDXライブラリあるからそこまで難しくないと思うけど…
あとはBOX2Dとの絡みが厄介そうだけどまぁ、XとYだけ見てたら大丈夫かXD
ちなみにアレだったゲームの画面はこちら。
アレだ…
内容は
鶏が産みまくるひよこをひたすら上の●に入れ続けるゲームでした。
●の中に入れて数秒たてばひよこは浄化される。
画面外にひよこがぶっ飛んだら死ぬ、
死んだらひよこの頭が飛んでいく。血しぶきがすごいことになる。
浄化した数/2 の死亡ひよこ数でゲームオーバー
浄化されたり死んだりすると難易度が上がっていって
最終的にはプレイヤーが処理できない量のひよこが沸いて
半強制的にゲームオーバーになるが、画面がひどいことになってて
そこはみんな面白いらしい、くそ
まぁ基本的にプレイ感は悪かった。
一部プレイヤーに大しての配慮も欠けているため、
LUA導入の実験作としてはそこそこ上手く行ったとは思うが、
ゲームとしてはまぁ、アレだった。
2010年11月24日水曜日
2010年11月20日土曜日
MDIで使いたい
やりたい事
VB.netのMDIとやらで、
1Form内に、1つだけDXライブラリを利用したPreviewウィンドウを作りたいでゲソ。
で、実際ぶちぶち作ってるんだけど、色々と問題が発生しているでゲソ。
1.DxLib_Init()より前にMdiParentにFormを格納すると、DxLib_Initで落ちる
2.DxLib_Init()より後にMdiParentにFormを格納すると、動くが”描画されない”
3.MdiParentになにもしない場合(子にしなければ)正常に動く
参った、何か手段はないものじゃなイカ……
VB.netのMDIとやらで、
1Form内に、1つだけDXライブラリを利用したPreviewウィンドウを作りたいでゲソ。
で、実際ぶちぶち作ってるんだけど、色々と問題が発生しているでゲソ。
1.DxLib_Init()より前にMdiParentにFormを格納すると、DxLib_Initで落ちる
2.DxLib_Init()より後にMdiParentにFormを格納すると、動くが”描画されない”
3.MdiParentになにもしない場合(子にしなければ)正常に動く
PreviewForm = New Preview()
PreviewForm.StartPosition = Windows.Forms.FormStartPosition.CenterParent
'============================================
'DXライブラリ関係
'WindowModeに
DX.ChangeWindowMode(DX.TRUE)
DX.SetWindowText("Preview")
DX.SetUseDirectInputFlag(DX.FALSE)
DX.SetUserWindow(PreviewForm.Handle)
'PreviewForm.MdiParent = form ←ここでやると DX.DxLib_Init()で”プログラムが落ちる”
'起動失敗でスルー
If -1 = DX.DxLib_Init() Then
MessageBox.Show("DxLib.DLL か DxLibDotNet.dll が作業フォルダに存在しません", "error", MessageBoxButtons.OK)
Return
End If
'PreviewForm.MdiParent = form ←ここでやると実行時Formはあるが”描画ができない”
DX.SetWindowSizeChangeEnableFlag(DX.TRUE)
DX.SetWindowSizeExtendRate(1.0)
DX.SetAlwaysRunFlag(DX.TRUE)
DX.SetMouseDispFlag(DX.TRUE)
DX.SetMultiThreadFlag(DX.TRUE)
'============================================
参った、何か手段はないものじゃなイカ……
2010年11月1日月曜日
2010年10月29日金曜日
2010年10月20日水曜日
結論
勘 違 い で す
日本語はLuaInterfaceでも使えました
先日出したあのソースは確かにCallで失敗していました
結局それは治りませんでしたがそんなことは良かったのです
LuaInterfaceで動いたからイイノデス!
LuaInterfaceで日本語を使う方法は簡単な事だった。
まぁ説明もなしなんでどうかと思うんですが
ようは.GetEncoding("shift_jis")ですよ.GetEncoding("shift_jis")
前まで、ここの
.GetEncoding("shift_jis")
が
.GetEncoding("EUC_jp")
だったんですよねー
ニホチニヒホリみたいな文字化けしてたんで
おかしいなーとか心の浅いところで思ってたんだけど
LuaInterfaceのせいにしてたよ俺
最低だ……
あ、ちなみに前にも書いたけど
LuaInterfaceでの記述はこんな感じね、
最新版じゃなくてちょっと古いやつを使っているよ
日本語はLuaInterfaceでも使えました
先日出したあのソースは確かにCallで失敗していました
結局それは治りませんでしたがそんなことは良かったのです
LuaInterfaceで動いたからイイノデス!
LuaInterfaceで日本語を使う方法は簡単な事だった。
'日本語を書き込むところの処理
If (System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(_targetFullPass)) = True) Then
System.IO.File.WriteAllText(_targetFullPass, Writestr, System.Text.Encoding.GetEncoding("shift_jis"))
Else
Dim GrfPath As String = New System.IO.FileInfo(URLTextBox.Text).Directory.Name
System.IO.Directory.CreateDirectory(_exeurl + "\scripts\GraphicScripts\" + GrfPath + "\")
System.IO.File.WriteAllText(_targetFullPass, Writestr, System.Text.Encoding.GetEncoding("shift_jis"))
End If
まぁ説明もなしなんでどうかと思うんですが
ようは.GetEncoding("shift_jis")ですよ.GetEncoding("shift_jis")
前まで、ここの
.GetEncoding("shift_jis")
が
.GetEncoding("EUC_jp")
だったんですよねー
ニホチニヒホリみたいな文字化けしてたんで
おかしいなーとか心の浅いところで思ってたんだけど
LuaInterfaceのせいにしてたよ俺
最低だ……
あ、ちなみに前にも書いたけど
LuaInterfaceでの記述はこんな感じね、
最新版じゃなくてちょっと古いやつを使っているよ
'存在している場合
Dim L As New LuaInterface.Lua
'LUA読み取り
L.DoFile(full)
'LUAのGraphicSettingを格納
Dim func As LuaInterface.LuaFunction = L.GetFunction("GraphicSetting")
'関数呼び出し
Dim a = func.Call()
'関数の戻り値を格納
HelpTextBox.Text = a(0)
TypeComBox.SelectedIndex = a(1)
AllNumNmBox.Text = a(2)
XNumNmBox.Text = a(3)
YNumNmBox.Text = a(4)
XSizeNmBox.Text = a(5)
YSizeNmBox.Text = a(6)
2010年10月19日火曜日
ぐぬぬ(メモ)
LuaInterfaceだと日本語読めないよといわれたから
仕方ないからTaoを使うようにした
そしたらどうもCallがうまいこといかない
仕方ないからTaoを使うようにした
そしたらどうもCallがうまいこといかない
'存在している場合
Dim L As New System.IntPtr
L = Tao.Lua.Lua.luaL_newstate()
Tao.Lua.Lua.lua_open()
'LUA読み取り
Tao.Lua.Lua.luaL_openlibs(L)
If Tao.Lua.Lua.luaL_loadfile(L, full) Then
Dim str = Tao.Lua.Lua.lua_tostring(L, 1)
MessageBox.Show(str, "err")
End If
Dim top = Tao.Lua.Lua.lua_gettop(L)
'関数名Push
Tao.Lua.Lua.lua_getglobal(L, "GraphicSetting")
'関数呼び出し(ここでNULLがかえる)
If Tao.Lua.Lua.lua_pcall(L, 0, 7, 0) Then
Dim str = Tao.Lua.Lua.lua_tostring(L, 1)
MessageBox.Show(str, "err2")
End If
'関数の戻り値を格納
Dim a = Tao.Lua.Lua.lua_tostring(L, 1)
Dim b = Tao.Lua.Lua.lua_tointeger(L, 2)
Dim c = Tao.Lua.Lua.lua_tointeger(L, 3)
Dim d = Tao.Lua.Lua.lua_tointeger(L, 4)
Dim f = Tao.Lua.Lua.lua_tointeger(L, 5)
Dim g = Tao.Lua.Lua.lua_tointeger(L, 6)
Dim h = Tao.Lua.Lua.lua_tointeger(L, 7)
'HelpTextBox.Text = Tao.Lua.Lua.lua_tostring(L, 0)
'TypeComBox.SelectedIndex = Tao.Lua.Lua.lua_tointeger(L, 1)
'AllNumNmBox.Value = Tao.Lua.Lua.lua_tointeger(L, 2)
'XNumNmBox.Value = Tao.Lua.Lua.lua_tointeger(L, 3)
'YNumNmBox.Value = Tao.Lua.Lua.lua_tointeger(L, 4)
'XSizeNmBox.Value = Tao.Lua.Lua.lua_tointeger(L, 5)
'YSizeNmBox.Value = Tao.Lua.Lua.lua_tointeger(L, 6)
Tao.Lua.Lua.lua_settop(L, top)
2010年10月18日月曜日
四苦八苦
VB.netマルチスレッドで動かしているプログラムで
DX.GetMouseInput()
を利用できない。
私の書き方が悪いのか、なんか良く解らんが困った。
とりあえず、
WinAPIのGetAsyncKeyStateで代用
同時に問題が発生。
DX.GetMouseInput()
の場合、当然だがウィンドウ内でクリックされた時に
「ボタンが押されたよ」と返事が来るわけだが、
GetAsyncKeyStateの場合は
画面上でなくても「ボタンが押されたよ」と返事が来る。
そこで、DXライブラリによって生成されたWindowが
Active状態でのみ判定を起こすことにした
DX.GetWindowActiveFlag()
かなりブサイクな挙動だけどできたー!やったー!
DX.GetMouseInput()
を利用できない。
私の書き方が悪いのか、なんか良く解らんが困った。
とりあえず、
WinAPIのGetAsyncKeyStateで代用
同時に問題が発生。
DX.GetMouseInput()
の場合、当然だがウィンドウ内でクリックされた時に
「ボタンが押されたよ」と返事が来るわけだが、
GetAsyncKeyStateの場合は
画面上でなくても「ボタンが押されたよ」と返事が来る。
そこで、DXライブラリによって生成されたWindowが
Active状態でのみ判定を起こすことにした
DX.GetWindowActiveFlag()
かなりブサイクな挙動だけどできたー!やったー!
'マウス左クリック
If DX.GetWindowActiveFlag() Then
If GetAsyncKeyState(Keys.LButton) Then
_Mouse = DX.MOUSE_INPUT_LEFT
End If
End If
2010年10月17日日曜日
小言
しらなんだ、DXライブラリは、VB.netでも動くんだ
これで色々と楽になりそう。
使い方
1.公式からC#のDXライブラリを取ってくる
2.VSでDXライブラリを使いたいプロジェクトを開く
3.プロジェクト→参照の追加
4.参照を追加→DXLibDotNet.dllを参照する
5.Releaseフォルダ及びDebugフォルダに
(VisualStudioフォルダのProject→開いたプロジェクト→bin)
DxLib.DLLを入れる
6.Imports DxLibDLL と入れて
あとはDX.と入力するとインテリジェンス君が色々教えてくれる
実際使ってみると
Formとは別窓にウィンドウが出ます
素敵!
これで色々と楽になりそう。
使い方
1.公式からC#のDXライブラリを取ってくる
2.VSでDXライブラリを使いたいプロジェクトを開く
3.プロジェクト→参照の追加
4.参照を追加→DXLibDotNet.dllを参照する
5.Releaseフォルダ及びDebugフォルダに
(VisualStudioフォルダのProject→開いたプロジェクト→bin)
DxLib.DLLを入れる
6.Imports DxLibDLL と入れて
あとはDX.と入力するとインテリジェンス君が色々教えてくれる
実際使ってみると
Formとは別窓にウィンドウが出ます
素敵!
2010年10月14日木曜日
考えてること
突然なんですが、
今度の冬コミに出すのは、(出れればの話だが)
「うさぎは絵本の中の~」の体験版ではなく、
うさぎは絵本の中の~を作るための勉強として作っている
ある意味習作を、出せればと思っています。
というか絶賛製作中です。
ーーー
今回は、ジオメトリーウォーズ風なシンプルな形で、
360度のSTGで、プチプチ敵を倒せるようにしたいと考えてます。
それと、今回は、誰でもが自機や敵を作れればいいなー、
という事をコンセプトに、のそのそと作っております。
今月末あたりから、スクリーンショットを上げれる形に
仕上げられればいいかな、と計画しています。
ががが、がんばります!
ーーー
はい、思い出しました。
今年の4月にコメントがきていたことを…。
内容は、Box2DのDebugDrawがうまく動かないという事でした。
Box2Dのバージョンは2.0.1。
C++の場合です。
Box2DのDebugDrawを使用するためには、前提としてまず
「b2DebugDraw」クラスを継承したクラスを作る必要があります。
http://www.linuxuser.at/elements/doc/box2d/classb2_debug_draw.htm
b2DebugDrawクラス
上記Enumは簡単に言えば
DebugDrawで何を描画するかというフラグです。
それからこれは「virtual」ですから、抽象メソッド(仮想関数)です。
抽象メソッドは、別クラスによって継承しなければ使用することができません。
そのため、このb2DebugDrawクラスを継承させる必要があります…
こんな感じです:-)
内容に関しては、私の場合DXライブラリを使っていろいろやってます。
DrawPolygonに関してはこんな感じです
注釈すくなく、さらにきたなくてすんません。
さらに言えばタグがひどい(w
さて、これをVirtualがあるだけやっていくと
とりあえずはDebugDrawは動く状態になります。
ーーー
実際に使う際はこうです
0xFFFF の部分には、上記の enum を入れましょう
debug->e_***
という感じで、複数指定したいときは
debug->e_*** + debug->e_***
で問題ありません。
そんなもんです、はい。
それじゃあ今日のところは終わり
今度の冬コミに出すのは、(出れればの話だが)
「うさぎは絵本の中の~」の体験版ではなく、
うさぎは絵本の中の~を作るための勉強として作っている
ある意味習作を、出せればと思っています。
というか絶賛製作中です。
ーーー
今回は、ジオメトリーウォーズ風なシンプルな形で、
360度のSTGで、プチプチ敵を倒せるようにしたいと考えてます。
それと、今回は、誰でもが自機や敵を作れればいいなー、
という事をコンセプトに、のそのそと作っております。
今月末あたりから、スクリーンショットを上げれる形に
仕上げられればいいかな、と計画しています。
ががが、がんばります!
ーーー
はい、思い出しました。
今年の4月にコメントがきていたことを…。
内容は、Box2DのDebugDrawがうまく動かないという事でした。
Box2Dのバージョンは2.0.1。
C++の場合です。
Box2DのDebugDrawを使用するためには、前提としてまず
「b2DebugDraw」クラスを継承したクラスを作る必要があります。
http://www.linuxuser.at/elements/doc/box2d/classb2_debug_draw.htm
b2DebugDrawクラス
| enum | { e_shapeBit = 0x0001, e_jointBit = 0x0002, e_coreShapeBit = 0x0004, e_aabbBit = 0x0008, e_obbBit = 0x0010, e_pairBit = 0x0020, e_centerOfMassBit = 0x0040 } |
上記Enumは簡単に言えば
DebugDrawで何を描画するかというフラグです。
| virtual void | DrawPolygon (const b2Vec2 *vertices, int32 vertexCount, const b2Color &color)=0 |
| Draw a closed polygon provided in CCW order. | |
| virtual void | DrawSolidPolygon (const b2Vec2 *vertices, int32 vertexCount, const b2Color &color)=0 |
| Draw a solid closed polygon provided in CCW order. | |
| virtual void | DrawCircle (const b2Vec2 ¢er, float32 radius, const b2Color &color)=0 |
| Draw a circle. | |
| virtual void | DrawSolidCircle (const b2Vec2 ¢er, float32 radius, const b2Vec2 &axis, const b2Color &color)=0 |
| Draw a solid circle. | |
| virtual void | DrawSegment (const b2Vec2 &p1, const b2Vec2 &p2, const b2Color &color)=0 |
| Draw a line segment. | |
| virtual void | DrawXForm (const b2XForm &xf)=0 |
| Draw a transform. |
それからこれは「virtual」ですから、抽象メソッド(仮想関数)です。
抽象メソッドは、別クラスによって継承しなければ使用することができません。
そのため、このb2DebugDrawクラスを継承させる必要があります…
class DebugDraw : public b2DebugDraw
{
public:
void DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
void DrawPolygon(const b2Vec2& center, const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
void DrawSolidPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color);
void DrawCircle(const b2Vec2& center, float32 radius, const b2Color& color);
void DrawSolidCircle(const b2Vec2& center, float32 radius, const b2Vec2& axis, const b2Color& color);
void DrawSegment(const b2Vec2& p1, const b2Vec2& p2, const b2Color& color);
void DrawXForm(const b2XForm& xf);
};
こんな感じです:-)
内容に関しては、私の場合DXライブラリを使っていろいろやってます。
void DebugDraw::DrawPolygon(const b2Vec2* vertices, int32 vertexCount, const b2Color& color)
{
int mode;//一時BLEND記録領域
int parm;//一時BLENDパラメータ記録領域
GetDrawBlendMode(&mode,&parm);
SetDrawBlendMode(DX_BLENDMODE_NOBLEND,128);
int i = 1;
for(; i < vertexCount; i++)
{
DrawLine(static_cast(vertices[i-1].x * global::SCALE),static_cast(vertices[i-1].y * global::SCALE),
static_cast(vertices[i].x * global::SCALE),static_cast(vertices[i].y * global::SCALE),
GetColor(static_cast(255*color.r),
static_cast(255*color.g),
static_cast(255*color.b)));
}
DrawLine(static_cast(vertices[0].x * global::SCALE),static_cast( vertices[0].y * global::SCALE),
static_cast(vertices[i-1].x * global::SCALE),static_cast( vertices[i-1].y * global::SCALE),
GetColor(static_cast(255*color.r),
static_cast(255*color.g),
static_cast(255*color.b)
));
SetDrawBlendMode(mode,parm);
} DrawPolygonに関してはこんな感じです
注釈すくなく、さらにきたなくてすんません。
さらに言えばタグがひどい(w
さて、これをVirtualがあるだけやっていくと
とりあえずはDebugDrawは動く状態になります。
ーーー
実際に使う際はこうです
DebugDraw* debug = new DebugDraw(); debug->SetFlags( 0xFFFF ); global::boxglobal::g_world->SetDebugDraw(debug);
0xFFFF の部分には、上記の enum を入れましょう
debug->e_***
という感じで、複数指定したいときは
debug->e_*** + debug->e_***
で問題ありません。
そんなもんです、はい。
それじゃあ今日のところは終わり
2010年10月11日月曜日
.netからLUAの呼び出し
お久しぶりです、そろそろ適当ノリが良くなってきたので
個人的な事をひたすら書き連ねていきたいと思います
ちょっとした理由から、VB.netからLuaを呼び出す必要が出た(というかそのほうが楽だった)
ので、色々と調べてみた所、呼び出すことは可能なようだったのでメモ書き
VBからLUAを呼び出すには
LuaInterface.dllが必要
luainterface-2.0.1.zip
中のLuaとLuaInterfaceのdllをとりあえず
プロジェクトファイルにでも突っ込む
こんな感じで
VB.netでLuaの呼び出しが出来ました
最新版のLuaInterface.dllは使い方がよくわからなかったので、触ってません
大分使い方が違うよう?でしたが…
以下のサイトを参考にさせていただきました
http://blog.cnu.jp/2008/11/18/csharp%E3%81%ABlua%E3%82%92%E7%B5%84%E3%81%BF%E8%BE%BC%E3%82%80/#more-163 http://blog.livedoor.jp/akf0/archives/51607378.html
個人的な事をひたすら書き連ねていきたいと思います
ちょっとした理由から、VB.netからLuaを呼び出す必要が出た(というかそのほうが楽だった)
ので、色々と調べてみた所、呼び出すことは可能なようだったのでメモ書き
VBからLUAを呼び出すには
LuaInterface.dllが必要
luainterface-2.0.1.zip
中のLuaとLuaInterfaceのdllをとりあえず
プロジェクトファイルにでも突っ込む
次にVisualStudioのプロジェクト
↓
参照の追加
↓
LuaInterface.dllを追加する
でとりあえずLuaDLLが使える状態になる
---------------------
'関数を呼び出し、5つの戻り値を各TextBoxに格納するのだ
'Luaクラスをインスタンス化
Dim L As New LuaInterface.Lua
'fullはLuaファイルへのフルパスが格納されている
L.DoFile(full)
'GetFunctionメソッドでLuaメソッドを、func(LuaFunctionクラス)に格納
Dim func As LuaInterface.LuaFunction = L.GetFunction("GraphicSetting")
'関数を呼び出す
Dim a = func.Call()
'各戻り値が a() に格納される、
'それをTextBoxに入れる作業…
AllNumTextBox.Text = a(0)
XNumTextBox.Text = a(1)
YNumTextBox.Text = a(2)
XSizeTextBox.Text = a(3)
YSizeTextBox.Text = a(4)
---------------------
こんな感じで
VB.netでLuaの呼び出しが出来ました
最新版のLuaInterface.dllは使い方がよくわからなかったので、触ってません
大分使い方が違うよう?でしたが…
以下のサイトを参考にさせていただきました
http://blog.cnu.jp/2008/11/18/csharp%E3%81%ABlua%E3%82%92%E7%B5%84%E3%81%BF%E8%BE%BC%E3%82%80/#more-163 http://blog.livedoor.jp/akf0/archives/51607378.html
2010年8月31日火曜日
2010年8月16日月曜日
2010年8月12日木曜日
2010年6月17日木曜日
Box2D IsSensor
追記
いや、まて、嘘かも
ごめん俺嘘ついてるかも
もうちょっと調べてからいえばよかったかも
でも今調べ中、調べまくる
やっと効果の意味がわかった(今更)
簡潔に述べるのであれば
Trueならば
<物体同士の接触が発生しなくても、当たり判定の処理をする>
のだ
つまり、物体同士がぶつかっても、ぶつからなくても当たり判定の処理をする
Addだとかの処理を行う
そういうことだった
ああ、なんで今更俺はこんな重大な事に気づくかねまったく……
いや、まて、嘘かも
ごめん俺嘘ついてるかも
もうちょっと調べてからいえばよかったかも
でも今調べ中、調べまくる
やっと効果の意味がわかった(今更)
簡潔に述べるのであれば
Trueならば
<物体同士の接触が発生しなくても、当たり判定の処理をする>
のだ
つまり、物体同士がぶつかっても、ぶつからなくても当たり判定の処理をする
Addだとかの処理を行う
そういうことだった
ああ、なんで今更俺はこんな重大な事に気づくかねまったく……
2010年6月8日火曜日
2010年6月4日金曜日
BOX2D導入講座 1
設計的には、やや冗長的ではあるが、他の人がいじっても十分対応できる形になったな、と
なんとなく自分の中で納得する。
Box2Dを使う上での知識も、私の中ではそこそこに蓄積されてきたのではないかと思う。
C++でのBOX2Dのソースが、あまりにも不足している中で、
とりあえず入門編的な物を、このブログを通じて提供していければな、と思う
ということで、まず簡単に導入の仕方から。
1.Box2D_v2.0.1.zipを落としましょう
なぜv2.0.1かと言えば、特に理由は無いのだけど
ドキュメントが充実してるかなー、って思ったからだ。
というか更新の仕方が判らなかった、うんこ
多分上書きするだけだけど、うん…
2.VisualStudioの設定をする
わりとここが問題だったりする、というか
初心者の関門的ポジション
起動した後
ⅰ ツール->オプション->プロジェクト及びソリューション->VC++ディレクトリ(までとりあえず行く)
ここで、インクルードファイルとライブラリファイルを設定します
ⅱ Alt+Sで青くなるポップアップ?欄からインクルードファイルを選択
そこに、BOX2DのIncludeフォルダを指定
ⅲ 同じくライブラリを選択する
同じようにLibraryフォルダを指定
ⅳ 今度は、プロジェクト(青い部分)を右クリックしてプロパティを開く
(もしも出ていない場合は、Ctrl+Alt+L)
なんとなく自分の中で納得する。
Box2Dを使う上での知識も、私の中ではそこそこに蓄積されてきたのではないかと思う。
C++でのBOX2Dのソースが、あまりにも不足している中で、
とりあえず入門編的な物を、このブログを通じて提供していければな、と思う
ということで、まず簡単に導入の仕方から。
1.Box2D_v2.0.1.zipを落としましょう
なぜv2.0.1かと言えば、特に理由は無いのだけど
ドキュメントが充実してるかなー、って思ったからだ。
というか更新の仕方が判らなかった、うんこ
多分上書きするだけだけど、うん…
2.VisualStudioの設定をする
わりとここが問題だったりする、というか
初心者の関門的ポジション
起動した後
ⅰ ツール->オプション->プロジェクト及びソリューション->VC++ディレクトリ(までとりあえず行く)
ここで、インクルードファイルとライブラリファイルを設定します
ⅱ Alt+Sで青くなるポップアップ?欄からインクルードファイルを選択
そこに、BOX2DのIncludeフォルダを指定
ⅲ 同じくライブラリを選択する
同じようにLibraryフォルダを指定
ⅳ 今度は、プロジェクト(青い部分)を右クリックしてプロパティを開く
(もしも出ていない場合は、Ctrl+Alt+L)
ⅴ 構成プロパティ->リンカ->入力->追加の依存ファイル
と、その前のAlt+Cで”すべての構成”にしておいてください
その後、追加の依存ファイルに、”Box2D.lib”とか、まぁそんな感じのものを
入力してください。
それで準備はとりあえずOKです。
あとは使用するソースで
#include "Box2D.h"
をインクルードしてやればOKです。
とりあえず今回はこの辺で…、すんません。
登録:
投稿 (Atom)

