如何创建iOS游戏Contre Jour之类的土地(山丘)? (使用Box2d和OpenGL)
我的想法:
物理(Box2d)
我认为我们有一系列的身体或夹具。
当我们触摸屏幕时,请确定触摸位置。
如果触摸位置离陆地不远,我们会开始扫描身体阵列,并寻找最接近触摸位置的坐标的身体。
如果触摸移动,请将右侧身体移动到新坐标(body->SetTransform(...)
)。
您如何看待,使用大量机体效率如何?并通过坐标找到合适的身体?
图形(OpenGL)
通过绘制土地(山丘)创建了一系列顶点和三角形? 这是真的吗?
答案 0 :(得分:2)
您可以使用函数b2World :: QueryAABB获取给定区域中的灯具列表,然后检查这些灯具是否为最佳选项。 Box2D测试平台这样做是为了找出用鼠标抓取哪个夹具,这样你就可以检查出源代码了。另见:http://www.iforce2d.net/b2dtut/world-querying
要移动主体,您确实可以使用SetTransform,如果对象不需要在此过程中与任何东西进行交互,那么这将是一件好事。另一种选择可能是将SetLinearVelocity设置为一个速度,该速度将在一个时间步长内将主体移动到拖动的点。这是一种更好的方法,如果你想要一个连续的拖动,物体能够在移动时撞到物体,因为它不会瞬间将物体传送到手指位置。如果身体是子弹体,那么它还可以防止用户将物体拖过其他物体,例如静止墙。记得手指抬起时将速度设置为零:)