構造函數與析構函數
b2World::b2World ( const b2Vec2 & gravity,
bool doSleep
)
構造一個世界對象。
參數: gravity 世界重力向量。
doSleep 物體是否可休眠。經過不模擬休眠物體來提升引擎的效率。
b2World::~b2World ( )
摧毀世界。全部的物理學實體被摧毀,並且全部的堆內存被釋放。
成員函數
void b2World::ClearForces ( )
在一個時間步以後經過調用該方法來清除隊列。一般在每一個 Step 方法調用後調用該方法,除非你在處理子步驟 (注,原意爲表演子步驟 performing sub-steps)。默認的狀況下,隊列會被自動的清除,所以你不須要調用這個方法。
參見:
SetAutoClearForces
b2Body * b2World::CreateBody ( const b2BodyDef * def )
根據定義來建立一個剛體,定義的引用不會被保存。
警告:
此函數在回調期間會被鎖定。
b2Joint * b2World::CreateJoint ( const b2JointDef * def )
建立一個關節用於約束物體。這可能致使被鏈接的物體之間會中止碰撞。定義的引用不會被保存。
警告:
此函數在回調期間會被鎖定。
void b2World::DestroyBody ( b2Body * body )
摧毀給定的一個剛體。剛體的引用不會被保存。
警告:
這會自動地刪除全部相關的形狀和關節。
此函數在回調期間會被鎖定。
void b2World::DestroyJoint ( b2Joint * joint )
摧毀一個關節。這可能致使被鏈接的物體之間會開始碰撞。
警告:
此函數在回調期間會被鎖定
void b2World::DrawDebugData ( )
調用該方法來繪製形狀以及其它調試繪製數據。
bool b2World::GetAutoClearForces ( ) const [inline]
獲取在每一個時間步以後用於控制自動清除隊列的標誌。
int32 b2World::GetBodyCount ( ) const [inline]
獲取物體的數量。
b2Body * b2World::GetBodyList ( ) [inline]
獲取世界物體的列表。它會返回一個物體的指針,請使用 b2Body::GetNext 方法來得到在世界列表中的下一個物體。一個爲 NULL 的物體對象指針表示目錄結束。
返回:
世界物體列表的起始。
int32 b2World::GetContactCount ( ) const [inline]
獲取接觸的數量(每一個可能有0個或更多的接觸點)。
b2Contact * b2World::GetContactList ( ) [inline]
獲取世界接觸的列表。它會返回一個接觸的指針,請使用 b2Contact::GetNext 方法來得到在世界列表中的下一個接觸。一個爲 NULL 的接觸對象指針表示目錄結束。
返回:
世界接觸列表的起始。
警告:
contacts are (該處原文未寫完,多是做者的失誤。)
b2Vec2 b2World::GetGravity ( ) const [inline]
得到全局重力向量。
int32 b2World::GetJointCount ( ) const [inline]
得到關節的數量。
b2Joint * b2World::GetJointList ( ) [inline]
獲取世界關節的列表。它會返回一個關節的指針,請使用 b2Joint::GetNext 方法來得到在世界列表中的下一個關節。一個爲 NULL 的關節對象指針表示目錄結束。
返回:
世界關節列表的起始。
int32 b2World::GetProxyCount ( ) const
得到 broad-phase 代理的數量.
bool b2World::IsLocked ( ) const [inline]
世界是否被鎖定(在每一個時間步中)。
void b2World::QueryAABB ( b2QueryCallback * callback,
const b2AABB & aabb
) const
查詢世界中全部可能與提供AABB重疊的固定裝置。
參數: callback 一個由使用者實現的回調類。
aabb 一個用於查詢的盒子。
void b2World::RayCast ( b2RayCastCallback * callback,
const b2Vec2 & point1,
const b2Vec2 & point2
) const
光線投射的路徑射向世界中全部的固定裝置。你的回調是否控制離你最近的點、任何一點、或n-點(n-points)。光線投射會忽略包含出發點的形狀。Ray-cast the world for all fixtures in the path of the ray. Your callback controls whether you get the closest point, any point, or n-points. The ray-cast ignores shapes that contain the starting point.
參數: callback 一個用戶實現的回調類。
point1 光線起始點
point2 光線結束點
void b2World::SetAutoClearForces ( bool flag ) [inline]
設置一個標誌來控制每個時間步後是否自動清除力。
void b2World::SetContactFilter ( b2ContactFilter * filter )
註冊一個接觸過濾器控制特定地碰撞。不然,使用默認的過濾器b2_defaultFilter。該監聽器歸你持有,並且必須保證其有效性。
void b2World::SetContactListener ( b2ContactListener * listener )
註冊一個接觸事件監聽器。該監聽器歸你持有,並且必須保證其有效性。
void b2World::SetContinuousPhysics ( bool flag ) [inline]
啓用/禁用 連續物理測試。
void b2World::SetDebugDraw ( b2DebugDraw * debugDraw )
註冊一個調試模式的繪圖程序。調試功能的使用須要配合 b2World::DrawDebugData 方法。調試繪製對象歸你持有,並且必須保證其有效性。
void b2World::SetDestructionListener ( b2DestructionListener * listener )
註冊一個摧毀監聽器。調試繪製對該監聽器歸你持有,並且必須保證其有效性。
void b2World::SetGravity ( const b2Vec2 & gravity ) [inline]
改變全局重力向量。
void b2World::SetWarmStarting ( bool flag ) [inline]
開啓/禁用 用於測試的熱啓動。
void b2World::Step ( float32 timeStep,
int32 velocityIterations,
int32 positionIterations
)
執行一個時間步。這個操做中會執行碰撞檢測(collision detection)、集成(integration)、求解約束(constraint solution)。
參數: timeStep 模擬的時間量,這不該該是一個變化的量。
velocityIterations 速度的約束求解量。
positionIterations 位置的約束求解量。web