22#include <kiwano-physics/PhysicBody.h>
23#include <kiwano-physics/Joint.h>
61 void AddBody(PhysicBodyPtr body);
65 void RemoveBody(PhysicBodyPtr body);
69 void RemoveAllBodies();
73 const List<PhysicBodyPtr>& GetAllBodies()
const;
77 void AddJoint(JointPtr joint);
81 void RemoveJoint(JointPtr joint);
85 void RemoveAllJoints();
89 const List<JointPtr>& GetAllJoints()
const;
93 Vec2 GetGravity()
const;
97 void SetGravity(
Vec2 gravity);
105 void SetVelocityIterations(
int vel_iter);
109 void SetPositionIterations(
int pos_iter);
113 void ShowDebugInfo(
bool show);
117 b2World* GetB2World();
121 const b2World* GetB2World()
const;
126 void InitComponent(
Actor* actor)
override;
130 void OnUpdate(
Duration dt)
override;
138 void DispatchEvent(
Event* evt);
142 void JointRemoved(b2Joint* b2joint);
146 void BeforeSimulation(
Actor* parent,
const Matrix3x2& parent_to_world,
float parent_rotation);
150 void AfterSimulation(
Actor* parent,
const Matrix3x2& parent_to_world,
float parent_rotation);
159 std::unique_ptr<DebugDrawer> drawer_;
161 List<PhysicBodyPtr> bodies_;
162 List<JointPtr> joints_;
164 std::unique_ptr<b2DestructionListener> destroy_listener_;
165 std::unique_ptr<b2ContactListener> contact_listener_;
172 vel_iter_ = vel_iter;
177 pos_iter_ = pos_iter;
组件
Definition: Component.h:51
渲染上下文
Definition: RenderContext.h:64
物体
Definition: PhysicBody.h:40
物理世界
Definition: PhysicWorld.h:45
void SetPositionIterations(int pos_iter)
设置位置迭代次数, 默认为 2
Definition: PhysicWorld.h:175
void SetVelocityIterations(int vel_iter)
设置速度迭代次数, 默认为 6
Definition: PhysicWorld.h:170
时间段
Definition: Duration.h:48