スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

物体を投げる処理

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

 2011/8/3/screenShot.jpg

 ソースコードが長くなったので分割することに。仕方ないね。

 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で投げる

コメントの投稿

非公開コメント

プロフィール

wtetsuro

Author:wtetsuro
 適当なブログです。
 twitter
 ニコニコ動画

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
Powered By FC2ブログ

今すぐブログを作ろう!

Powered By FC2ブログ

ブロとも申請フォーム

この人とブロともになる

QRコード
QR