我有一系列随机生成的 EdgeShapes,如下所示:
我的问题是,如何用纹理填充底部区域以使其看起来像地面?
正如 IRC 中的某人所建议的那样:
使用 OpenGL 创建一个多边形,然后将其 1:1 映射到 Box2D 形状上并对多边形进行纹理处理。
从古老的记忆来看,看看代码,这不能用边缘形状来完成。您可以将它们链接在一起,但即便如此,也不会出现自碰撞,这将允许形状自身重叠,并且是 . . . 什么?没有创建法线,也没有创建质心。
这只是一个猜测——自从我使用 box2d 以来已经有一段时间了——但是你可以创建一个多边形吗?您将首先在一个数组中创建 N 个点,然后将该数组用作顶部的 y 值来模拟地面。然后,您将使每个点的 y 值随着时间的推移与其相邻(左或右)点的 y 值相等。当这些点到达末端时,它们被移出数组,并且一个新值被移到数组的另一端。
可以这样做吗?这会对与其他物体的接触点产生不利影响吗?