当前有三种类型的碰撞形状:
如果你愿意,你可以在一个刚体上添加任意数量的形状。这就是为什么两种类型(形状和刚体)是分离开的。这将会给你足够的灵活性来给相同对象的不同区域提供不同的摩擦力、弹性以及回调值。
当创建不同类型的形状的时候,你将永远得到一个cpShape*
指针返回。这是因为Chipmunk的形状是不透明的类型。想象具体的碰撞形状类型如cpCircleShape
, cpSegmentShape
和cpPolyShape
, 他们都是cpShape
的私有子类。你仍然可以使用getter
函数来获取他们的属性,但不要将cpShape
指针转成他们的特定类型指针。