クラス PhysicsBody

多くのプロパティを利用して剛体を定義する [詳細]

すべてのメンバ一覧

Public メソッド

 PhysicsBody ()
 デフォルトコンスタラクタ
 PhysicsBody (PhysicsBody body)
 コピーコンストラクタ
 PhysicsBody (PhysicsShape conv, float m)
 コンストラクタ
void Clear ()
 全てのメンバをクリアする
void CopyBody (PhysicsBody body)
 全てのメンバをコピーする
void MoveTo (Vector2 pt, float rt, float dt)
 位置、回転、並進速度、回転速度をアップデートする
bool InsideBody (Vector2 pos, PhysicsShape con)
 頂点が剛体の領域に含まれるかどうか
void SetBodyStatic ()
 剛体をスタティック剛体にセット
void SetBodyKinematic ()
 剛体をキネマティック剛体にセット
void SetBodyTrigger ()
 剛体をトリガー剛体に設定する
void BackToDynamic ()
 キネマティック剛体をダイナミック剛体に戻す
void WakeUpDynamic ()
 スリープ状態のダイナミック剛体を起こす
void WakeUpKinematic ()
 スリープ状態のキネマティック剛体を起こす
bool IsKinematicOrStatic ()
 剛体がキネマティックまたはスタティック剛体であるかを判定する
bool IsKinematic ()
 剛体がキネマティックであるかを判定する
bool IsStatic ()
 剛体がスタティックであるかを判定する
bool IsDynamic ()
 剛体がダイナミックであるかを判定する
bool IsTrigger ()
 剛体がトリガーであるかを判定する
void ApplyForce (Vector2 power)
 重心に力を加える
void ApplyForce (Vector2 power, Vector2 pos, bool isGlobal=true)
 任意の点に力を加える
void ApplyTorque (float rotPower)
 剛体にトルクを加える

Static Public メソッド

static Vector2 MergeBody (PhysicsBody[] bodyList, uint[] indexList, uint num, PhysicsShape[] sceneShapes, uint[] map, bool flag=true)
 剛体のマージ
static Vector2 MergeBodyWithPos (PhysicsBody[] bodyList, uint[] indexList, uint num, PhysicsShape[] sceneShapes, uint[] map, Vector2 pos)
 重心の設定を行う剛体のマージ

Public 変数

Vector2 position = new Vector2(0, 0)
 剛体の位置
float rotation = 0.0f
 剛体の回転角度
Vector2 velocity = new Vector2(0, 0)
 剛体の並進速度
float angularVelocity = 0.0f
 剛体の回転速度
Vector2 localPosition = new Vector2(0, 0)
 コンパウンド形状の場合のローカル位置
float localRotation = 0.0f
 コンパウンド形状の場合のローカル回転角度
Vector2 acceleration = new Vector2(0, 0)
 剛体の並進加速度
Vector2 force = new Vector2(0, 0)
 剛体にかかる重力を除く外力
float torque = 0.0f
 剛体にかかる重力を除くトルク
float mass = 0.0f
 剛体の質量
float invMass = 0.0f
 剛体の質量の逆数
float inertia = 0.0f
 剛体のテンソル
float invInertia = 0.0f
 剛体のテンソルの逆数
Vector2 width = new Vector2(0, 0)
 剛体の初期位置、回転角度に対するAABBバウンディングボックス
Vector2 aabbMin = new Vector2(0, 0)
 毎フレームアップデートされるAABBバウンディングボックスの左下位置
Vector2 aabbMax = new Vector2(0, 0)
 毎フレームアップデートされるAABBバウンディングボックスの右上位置
bool broadCollide = false
 Broad Phase衝突判定の結果
bool narrowCollide = false
 Narrow Phase衝突判定の結果
uint shapeIndex = 0
 剛体の形状のインデックス
uint collisionFilter = 0
 剛体のcollisionフィルター
uint groupFilter = 0xFFFFFFFF
 剛体のgroupフィルター
float airFriction = 0.0f
 Integrate Phaseで考慮される空気摩擦係数
float colFriction = 0.0f
 Solver Phaseで考慮される衝突摩擦係数
bool sleep = false
 スリープ状態、真ならシミュレーションで考慮されない
uint sleepCount = 0
 スリープ状態に入るかをチェックするカウンター
bool picking = true
 シミュレーション中にピッキングを可能にするかどうか
float oldMass = 0.0f
 剛体の前の質量
float oldInvMass = 0.0f
 剛体の前の質量の逆数
float oldInertia = 0.0f
 剛体の前のテンソル
float oldInvInertia = 0.0f
 剛体の前のテンソルの逆数
float penetrationRepulse = 0.2f
 めり込みに対する反発力の加速係数
float penetLimit = 0.03f
 めり込みに対する許容度
float tangentFriction = 0.3f
 反発に対する接線方向の摩擦係数
float restitutionCoeff = 0.0f
 反発に対する反発係数
object userData = null
 ユーザーデータへの参照

プロパティ

Vector2 Position [get, set]
 setter and getter of position
float Rotation [get, set]
 setter and getter of position
Vector2 Velocity [get, set]
 setter and getter of velocity
float AngularVelocity [get, set]
 setter and getter of angular velocity
Vector2 LocalPosition [get, set]
 setter and getter of local position
float LocalRotation [get, set]
 setter and getter of local rotation
Vector2 Acceleration [get, set]
 setter and getter of acceleration
Vector2 Force [get, set]
 setter and getter of force
float Torque [get, set]
 setter and getter of torque
float Mass [get, set]
 setter and getter of mass
float InvMass [get, set]
 setter and getter of inverse mass
float Inertia [get, set]
 setter and getter of inertia tensor
float InvInertia [get, set]
 setter and getter of inverse inertia tensor
Vector2 Width [get, set]
 setter and getter of Width
Vector2 AabbMin [get, set]
 setter and getter of AaabbMin
Vector2 AabbMax [get, set]
 setter and getter of aabbMax
bool BroadCollide [get]
 getter of broadCollide
bool NarrowCollide [get]
 getter of narrowCollide
uint ShapeIndex [get, set]
 setter and getter of shape index
uint CollisionFilter [get, set]
 setter and getter of collisionFilter
uint GroupFilter [get, set]
 setter and getter of groupFilter
float AirFriction [get, set]
 setter and getter of airFriction
float ColFriction [get, set]
 setter and getter of airFriction
bool Sleep [get, set]
 setter and getter of sleep
uint SleepCount [get, set]
 setter and getter of sleepCount
bool Picking [get, set]
 setter and getter of picking
BodyType Type [get, set]
 setter and getter of type
float PenetrationRepulse [get, set]
 setter and getter of penetrationRepulse
float PenetLimit [get, set]
 setter and getter of penetLimit
float TangentFriction [get, set]
 setter and getter of tangentFriction
float RestitutionCoeff [get, set]
 setter and getter of restitutionCoeff
object UserData [get, set]
 setter and getter of userData

説明

多くのプロパティを利用して剛体を定義する


コンストラクタとデストラクタ

コピーコンストラクタ

引数:
bodyコピー元の剛体
PhysicsBody ( PhysicsShape  conv,
float  m 
)

コンストラクタ

引数:
conv剛体の形状
m剛体の質量

メソッド

void ApplyForce ( Vector2  power)

重心に力を加える

引数:
power与えられる力

ダイナミック剛体のみに有効

void ApplyForce ( Vector2  power,
Vector2  pos,
bool  isGlobal = true 
)

任意の点に力を加える

引数:
power与えられる力
pos力の位置
isGlobal力の位置がグローバル座標かローカル座標かを示す。デフォルトはグローバル座標

ダイナミック剛体のみに有効

void ApplyTorque ( float  rotPower)

剛体にトルクを加える

引数:
rotPower与えられるトルク

ダイナミック剛体のみに有効

void BackToDynamic ( )

キネマティック剛体をダイナミック剛体に戻す

キネマティック剛体をダイナミック剛体に戻し、必要な情報を元の変数にセットする

bool InsideBody ( Vector2  pos,
PhysicsShape  con 
)

頂点が剛体の領域に含まれるかどうか

引数:
pos与えられた頂点
con剛体の形状
戻り値:
頂点が剛体の領域に入って入れば、真を返す
static Vector2 MergeBody ( PhysicsBody[]  bodyList,
uint[]  indexList,
uint  num,
PhysicsShape[]  sceneShapes,
uint[]  map,
bool  flag = true 
) [static]

剛体のマージ

複数の剛体 (コンパウンド形状)をマージするために、インデックスが昇順で与えられている

引数:
bodyListシーンの剛体リスト
indexListマージするための剛体のインデックスリスト
numマージするための剛体の数
sceneShapesシーンの形状リスト
mapコンパウンド形状対応マップ
flag剛体の位置をマージ後に再調整するかどうか
static Vector2 MergeBodyWithPos ( PhysicsBody[]  bodyList,
uint[]  indexList,
uint  num,
PhysicsShape[]  sceneShapes,
uint[]  map,
Vector2  pos 
) [static]

重心の設定を行う剛体のマージ

複数の剛体 (コンパウンド形状)をマージするために、インデックスが昇順で与えられている

引数:
bodyListシーンの剛体リスト
indexListマージするための剛体のインデックスリスト
numマージするための剛体の数
sceneShapesシーンの形状リスト
mapコンパウンド形状対応マップ
posマージした剛体の重心
void MoveTo ( Vector2  pt,
float  rt,
float  dt 
)

位置、回転、並進速度、回転速度をアップデートする

引数:
pt剛体の新しい位置
rt剛体の新しい回転
dtタイムステップ

剛体の新しい位置と回転を与えて、自動的に並進速度、回転速度を計算して設定します
位置、回転、並進速度、回転速度がこの関数によってセットされます 主にキネマティック剛体に対して使用し、スタティック剛体には使用できません

void SetBodyKinematic ( )

剛体をキネマティック剛体にセット

剛体をキネマティック剛体に設定,必要な情報を変数に保存する

void SetBodyStatic ( )

剛体をスタティック剛体にセット

剛体は一度スタティック剛体にセットされるとダイナミック剛体には戻せない

void WakeUpDynamic ( )

スリープ状態のダイナミック剛体を起こす

sleep = false; sleepCount = 0; と同じ

void WakeUpKinematic ( )

スリープ状態のキネマティック剛体を起こす

キネマティック剛体を動かす時にはスリープ状態から起こさないと正しく衝突判定が行われません
sleep = false; sleepCount = 0; と同じ


変数

float inertia = 0.0f

剛体のテンソル

剛体のテンソルはテンソルの逆数と同期していないといけない

float invInertia = 0.0f

剛体のテンソルの逆数

剛体のテンソルの逆数はテンソルと同期していないといけない

float invMass = 0.0f

剛体の質量の逆数

剛体の質量の逆数は質量と同期していないといけない

float mass = 0.0f

剛体の質量

剛体の質量は質量の逆数と同期していないといけない

float penetLimit = 0.03f

めり込みに対する許容度

この値を有効にするにはPhysicsSceneのuniquePropertyをfalseにする必要あり

float penetrationRepulse = 0.2f

めり込みに対する反発力の加速係数

この値を有効にするにはPhysicsSceneのuniquePropertyをfalseにする必要あり

float restitutionCoeff = 0.0f

反発に対する反発係数

この値を有効にするにはPhysicsSceneのuniquePropertyをfalseにする必要あり

float tangentFriction = 0.3f

反発に対する接線方向の摩擦係数

この値を有効にするにはPhysicsSceneのuniquePropertyをfalseにする必要あり

object userData = null

ユーザーデータへの参照

参照先データはユーザーによって適切に管理される必要があります