如何创建iOS游戏'Contre Jour'的土地(山丘)?

时间:2012-01-30 11:49:04

标签: objective-c ios opengl-es box2d

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

我的想法:

物理(Box2d)

  1. 我认为我们有一系列的身体或夹具。

  2. 当我们触摸屏幕时,请确定触摸位置。

  3. 如果触摸位置离陆地不远,我们会开始扫描身体阵列,并寻找最接近触摸位置的坐标的身体。

  4. 如果触摸移动,请将右侧身体移动到新坐标(body->SetTransform(...))。

  5. 您如何看待,使用大量机体效率如何?并通过坐标找到合适的身体?

    图形(OpenGL)

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

    enter image description here

1 个答案:

答案 0 :(得分:2)

您可以使用函数b2World :: QueryAABB获取给定区域中的灯具列表,然后检查这些灯具是否为最佳选项。 Box2D测试平台这样做是为了找出用鼠标抓取哪个夹具,这样你就可以检查出源代码了。另见:http://www.iforce2d.net/b2dtut/world-querying

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