如何创建类似于iOS游戏Contre Jour的土地(丘陵)? (使用Box2d和OpenGL)

我的想法:

物理(Box2d)

  • 我认为我们有一系列的物体或固定装置。
  • 当我们触摸屏时,请确定触摸位置。
  • 如果触摸位置离陆地不远,我们将开始扫描物体阵列,并正在寻找坐标最接近触摸位置的物体。
  • 如果轻触移动,则将右主体移动到新坐标(body->SetTransform(...))。

  • 您认为使用大量身体有效吗?并通过坐标找到合适的身体?

    图形(OpenGL)

    通过绘制土地(山丘)可以创建一系列顶点和三角形吗?
    这是真的?

    最佳答案

    您可以使用功能b2World::QueryAABB来获取给定区域中的灯具列表,然后检查这些灯具是否为最佳选择。 Box2D测试平台这样做是为了找出要用鼠标抓取的夹具,以便您可以查看该源代码。另请参阅:http://www.iforce2d.net/b2dtut/world-querying

    要移动主体,您确实可以使用SetTransform,如果对象在此过程中无需与任何物体进行交互,则可以使用SetTransform。另一种选择是将SetLinearVelocity设置为一个速度,该速度将在一个时间步中将实体移至拖动点。如果您想要连续拖动以使对象在移动时能够碰到物体,则这是一种更好的方法,因为它不会立即将身体传送到手指位置。如果主体是子弹体,那么它还可以防止用户通过其他物体(例如,静态墙)拖动物体。记得在手指抬起时将速度设置为零:)

    08-15 19:46