物体を投げる処理
物体を投げることで足場にしたりスイッチの重しにしたりできる。

ソースコードが長くなったので分割することに。仕方ないね。
global.h
BOX2D_SCALEはbox2dの1mを何ピクセルで表現するか。
この値は不変だし色々なクラスから参照するのでglobalな場所に置いておく。
CInput.h
CInput.cpp
これでいいんかね。
CContactListener.h
CContactListener.cpp
b2ContactListenerを継承。
CDebugDraw.h
CDebugDraw.cpp
b2DebugDrawを継承したクラス。すこしは使いやすくなったかね。
CUserData.h
CUserData.cpp
box2dの肝となる部分で他のクラスはこのクラスを継承していく。
投げる処理のために変数やら関数が増えた。
CNotActer.h
CNotActer.cpp
CUserDataの派生クラス。動かない物体、例えば壁とかにセットする。
いい名前が思い浮かばなかった。
CPlayer.h
CPlayer.cpp
CUserDataの派生クラスでその名の通りプレイヤーの処理を担当するクラス。
例えば移動の際x軸に4ピクセル動かしたい時の式は、
4.f * 60.f / BOX2D_SCALE
この値をb2Body::SetLinearVelocityに渡してやれば実現できる。
60.fは通常時が60FPSであると仮定しているからで、つまりb2World::StepのtimeStepは1.f/60.f。
この解釈でいいのかなーわかんねー。
main.cpp
q,wでスケール変化、a,sでCDebugDrawのオン、オフ、zでジャンプ、xで投げる

ソースコードが長くなったので分割することに。仕方ないね。
global.h
BOX2D_SCALEはbox2dの1mを何ピクセルで表現するか。
この値は不変だし色々なクラスから参照するのでglobalな場所に置いておく。
CInput.h
CInput.cpp
これでいいんかね。
CContactListener.h
CContactListener.cpp
b2ContactListenerを継承。
CDebugDraw.h
CDebugDraw.cpp
b2DebugDrawを継承したクラス。すこしは使いやすくなったかね。
CUserData.h
CUserData.cpp
box2dの肝となる部分で他のクラスはこのクラスを継承していく。
投げる処理のために変数やら関数が増えた。
CNotActer.h
CNotActer.cpp
CUserDataの派生クラス。動かない物体、例えば壁とかにセットする。
いい名前が思い浮かばなかった。
CPlayer.h
CPlayer.cpp
CUserDataの派生クラスでその名の通りプレイヤーの処理を担当するクラス。
例えば移動の際x軸に4ピクセル動かしたい時の式は、
4.f * 60.f / BOX2D_SCALE
この値をb2Body::SetLinearVelocityに渡してやれば実現できる。
60.fは通常時が60FPSであると仮定しているからで、つまりb2World::StepのtimeStepは1.f/60.f。
この解釈でいいのかなーわかんねー。
main.cpp
q,wでスケール変化、a,sでCDebugDrawのオン、オフ、zでジャンプ、xで投げる



