用Box2D模拟门户

时间:2015-01-06 08:47:46

标签: box2d

我想知道如何用Box2D模拟门户网站。 这几乎是我想要的:http://vimeo.com/60622783

我想一种方法是在门户网站的另一端创建实体副本,以便适当地连接位置和速度。

但是现在,我如何防止身体在门户后面与其他身体发生碰撞?不知何故,在碰撞中需要忽略通过门户线的身体部位,同样,副本的身体部位只有在经过(其他)门户线时才会发生碰撞。

这是最好的方法吗?如果是这样,我如何编码第二部分?我想我可以通过在正文和副本之间创建自定义关节来使第一部分工作。

(视频中的人不需要为第二个问题烦恼,因为门户网站后面没有任何内容。)

1 个答案:

答案 0 :(得分:1)

我写了一篇关于如何创建articleconvincing 2D portals。它有很多,所以我将在这里总结一般方法:

  1. 每个门户网站的开口都有一个传感器。当身体与该传感器接触时,将它们克隆到另一个门户。
  2. 使用contact->SetEnabled(false);
  3. 禁用与门户网站后面的地形的联系人
  4. 使用着色器进行遮罩,看起来UI正在消失在门户中,即使Box2D的主体只是在地形上掉落。
  5. 在克隆通过门户网站时进行同步。最明显的克隆是领导者,而另一个只是用body->SetTransform(position, rotation);
  6. 来反映位置
  7. 交换领导者时,给新领导者一个旧领导者的转变速度,以保持动力。
  8. 作为奖励,我们还为门户添加了一些“吸吮”功能,以便让游戏更加流畅。