- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
如何像iOS游戏一样创建土地(山丘)Contre Jour ? (使用 Box2d 和 OpenGL)
我的想法:
物理 (Box2d)
我想我们有一组物体或夹具。
当我们触摸屏幕时,确定触摸位置。
如果触摸位置离陆地不远,我们开始扫描物体阵列,寻找坐标最接近触摸位置的物体。
当触摸 Move 时,将右 body 移动到新坐标 (body->SetTransform(...)
)。
您认为使用大量物体的效率如何?并通过坐标找到合适的 body ?
图形 (OpenGL)
有一个由绘制土地(山丘)创建的顶点和三角形数组?这是真的吗?
最佳答案
您可以使用函数 b2World::QueryAABB 获取给定区域中的固定装置列表,然后检查最佳选项。 Box2D testbed 这样做是为了找出用鼠标抓取哪个夹具,以便您可以检查该源代码。另请参阅:http://www.iforce2d.net/b2dtut/world-querying
要移动 body ,您确实可以使用 SetTransform,如果对象在移动过程中不需要与任何事物交互,这会很好。另一种选择可能是将 SetLinearVelocity 设置为一个速度,该速度将在一个时间步长内将主体移动到拖动到的点。如果您希望连续拖动对象能够在移动时撞到东西,这是一个更好的方法,因为它不会立即将 body 传送到手指位置。如果主体是弹体,那么它还可以防止用户拖动东西穿过其他物体,例如静态墙。记得在手指抬起时将速度设置为零:)
关于objective-c - 如何创建像 iOS 游戏 'Contre Jour' 一样的土地(山丘)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9063413/
如何像iOS游戏一样创建土地(山丘)Contre Jour ? (使用 Box2d 和 OpenGL) 我的想法: 物理 (Box2d) 我想我们有一组物体或夹具。 当我们触摸屏幕时,确定触摸位置。
我是一名优秀的程序员,十分优秀!