分享

AndEngine学习笔记 Physics

 幻魂1990 2013-07-28
运行物理碰撞需要工程下有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(PhysicsConnector pPhysicsConnector)注册连接器,连接器用来关联Shape和Body。粗读代码的理解,一个能被绘制的物理物体,有Shape和body两部分,Shape负责处理和显示、互动相关的处理,Body则是参与物理运算的数据类。
本例3个固定body,3个运动body,分别连接为3组。运动body更新的时候也更新它和固定body间的连线。‘最后创建反向约束关节,RevoluteJointDef,并给一个motor做运动动力。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多