Box2D基本概念的学习记录
关于Box2D
Box2D 是一个用于游戏的 2D 刚体仿真库。程序员可以在游戏中使用它,让物体的运动更加可信,让世界看起来更具交互性。从游戏引擎的视角来看,物理引擎就是一个为程序化动画 (procedural animation)的系统。Box2D是用C++开发的一款物理引擎, 而本文用的是Box2dWeb,即Box2D的JS版本。
一些基本概念
Box2D使用了一些基本的对象来定义和模拟游戏世界。最重要的几个对象如下:* World(世界):最主要的Box2D对象, 包括了所有的世界对象并模拟着游戏的物理行为。* Body(刚体): 刚体可以由一个或多个通过设备附属在刚体上的形状组成。* Shapes(形状): 一个二维形状,如圆形或多边形, 这些是用于Box2D内的基础形状。* Fixture(设备): 将一个形状附属在一个刚体上,用于碰撞检测。设备持有额外的,非几何的数据,如摩擦,碰撞和滤器。* Joint(关节):用来将两个刚体以不同的方式限制在一起。比如,一个转动关节限制两个刚体共享一个共同的节点,同时它们可以通过这个节点自由的旋转。
计算单位系统
Box2D的所有计算使用米制系统, 而我们在绘图时使用的是像素, 因此需要建立一个米到像素的映射, 通常使用30像素代表1米。