オブジェクトをマウス操作(ドラッグ)で動かすというのをやってみる。
と言っても詳しい資料がなかなか見つからないのでよく理解出来てない、、
とりあえずサンプルにあったものを拝借して動かしてみる。
ただ、ドラッグの処理の仕方が特殊なので注意。
まずは入力用のライブラリをインポート。
マウス座標の変数と、入力用のオブジェクトを作成。
それと入力用オブジェクトを作成するときにspriteが必要になってくるからそれも作成。
(これは後々MCをBox2Dので作成したオブジェクトに貼付ける際にも必要になってくる)
そして、マウス位置を取得する関数、ドラッグする関数、マウスの位置にあるオブジェクトを取得する関数の3つの関数を用意。
↓毎フレームマウス位置を取得する関数。
↓実際にドラッグする関数。
↓マウスの位置にあるオブジェクトを取得する関数。
そして上記3つの関数を毎フレーム実行すればドラッグできる。
以下今までの全ソース
・
ソース
前回は単純な円形と四角形を作ったけど今回は多角形を。
ライブラリのソースを見たところ最大8角までの図形が作れるみたい。
作り方は簡単で、b2PolygonDefのvertexCountで角の数を設定し、各頂点の座標を指定するだけ。
五角形以上の場合は角の数を増やして、頂点座標もそれに合わせて追加すればできる。
そして、より複雑な図形を作る場合はそれらの形を組み合わせる。
b2BodyDefには複数のオブジェクトを登録できて、それらを一つのオブジェクトとして生成することができる。
たとえばカプセルっぽいものを作るとすると↓こんな感じ。
長くなって来たからソースをアップロード。
・
ソース
ASを書いていて、長くなってくるとだんだんと見づらくなってくる。
コメントアウトで区切ったりするのが普通だったけど、functionの中のプログラムの塊を「{}」で括れることが判明。
こりゃ良いや。見やすい!