运行物理碰撞需要工程下有physic扩展的so库文件。
本例继承自BasePhysicsJointExample。
关于BasePhysicsJointExample,实现了IAccelerometerListener,IOnSceneTouchListener,用来处理加速传感器和触屏事件。
engineOptions.getTouchOptions().setRunOnUpdateThread(true);//作者如下解释
创建物理世界和墙:
new PhysicsWorld()
创建Shape,PhysicsFactory.createFixtureDef创建刚体的定义体,并传递给PhysicsFactory.createBoxBody生成刚体矩形,作为物理世界的边界。Scene.attachChild将各个墙加入到场景,参与物理运算和重绘。
物理世界:
class PhysicsWorld implements IUpdateHandler
PhysicsWorld.setGravity(Vector2 pGravity)设置重力
矢量:
Vector2Pool.obtain>>
Vector2Pool.recycle<<
加速计,Resume后enable,Pause的时候disable。
PhysicsWorld.registerPhysicsConnector
本例3个固定body,3个运动body,分别连接为3组。运动body更新的时候也更新它和固定body间的连线。‘最后创建反向约束关节,RevoluteJointDef,并给一个motor做运动动力。
|
|