[译]Chipmunk 教程2 - 基本概念

基本概念

 

 

现在我们已经setup好了我们的工程,并且已经可以我们正式的学习Chipmunk之旅了。开始这个之前,我们需要学习一些基本的Chipmunk概念,知道他是如何组织的。

在开始模拟一个现实世界的物理现象之前,你需要你新的为一个规则,并且你需要创建一个容器,成装你所有的对象。Chipmunk叫做Space。出了这些基本规则以外,他同样扮演一个所有对象的容器,你将会创建一个模拟器,来使得他们正确表现。

定义任何一个对象,你都需要定义他的Mass也就是孩子两,和他的其它选项。这是一个Chipmunk里面叫做Body的概念。一个body在和其他的物体产生交互的时候自身不会产生碰撞,因为他没有形状‘shape’。出了没有形状以外,对象并不相同,你可能需要定义不同的变量,来区分不同的对象。例如,冰淇淋的上面要比你拿着的那个棍子要软一样。

定义一个body区域和不同的表面用来和其他的进行交互的话,你需要给一个body添加一个或者多个Shapes。总的来说,一共有三个Chipmunk可用的形状:circle,segment和poly。(翻译成:圆形,弓形,聚合的)。有了这三个形状的组合,你可以定义几乎所有能想象的body的区域交互。很明显,给一个body添加shape,并不能够产生碰撞。需要注意的是,通常很少很完整的像一个精灵的每一个形状一样实现Shape,给一个精灵添加很多的shape的话,会增加计算量。Chipmunk需要计算每一个帧,你需要通过一种简化的方式来覆盖很重要的部分,但是即便如此,你同样会感觉到它在模拟器中是正常运行的。

使用Chipmunk的时候,你可以尝试更新body的一些属性,例如速度,位置,但是这并不是被推荐的。主要的改变方法是应该和现实世界一样,需要使用提供Forces。需要提供沿着XX和YY轴的强度。为了使用向量,Chipmunk有个库叫做cpVect,可以允许你做很多常见的操作。例如多向量或者两个向量的投影。

同样的,Chipmunk支持Joints, 它允许你可以通过pin points, slide points,pivot, groove points.(这里怎么翻译呢),连接起来,虽然我不会在这个教程里面详细覆盖连接,但是你可以自己去研究。

posted @ 2010-04-01 22:41  AlexLiu  阅读(1878)  评论(0编辑  收藏  举报