[Box2D] body簡介

定義完bodyDef之後,透過b2World建立了body,那怎麼使用它呢?

特性


body有以下幾種特性:
mass
accessing position
velocity
applying force
transforming points and vectors

質量

共有三種數值:
mass(scalar)
center of mass(2-vector)
rotational inertia(scalar)

static body的mass = rotational inertia = 0。

一般來說body的質量是直接由附在上面的fixture所定義的density計算出來的。也可以自己重新設定body的質量:

void SetMassData(const b2MassData* data);

改回原先由fixture定出的質量可以使用:

void ResetMassData();

可參考fixture密度改變的做法:

fixture->SetDensity(5.0f);
body->ResetMassData();

所以ResetMassData();本來就是把body的質量依照fixture的設定去設定的方法。

其他的特性的set和get方法可以參考官方手冊。

留言