我有一组随机生成的EdgeShapes,如下图所示:
我的问题是,我该如何使用纹理填充底部区域,以使其看起来像地面?
![enter image description here](https://istack.dev59.com/ui0K9.webp)
正如IRC上某人建议的:
使用OpenGL创建多边形,然后将其1:1映射到Box2D形状,并为多边形贴上纹理。
从古老的记忆中,再看代码,这似乎无法使用边缘形状完成。你可以将它们链接在一起,但即使如此也没有自我碰撞,这将允许形状重叠,然后是什么?没有创建法线,也没有质心。
这只是一个猜测——我已经有一段时间没有使用box2d了——但你能否创建一个多边形呢?首先,你需要在数组中创建N个点,并将该数组用作顶部的y值以模拟地面。然后,你会使每个点的y值随着时间等于其相邻(左侧或右侧)点的y值。当点到达末尾时,它们被移出数组,并将新值移动到数组的另一端。
这样做是否可行,会对与其他对象的接触点产生不利影响吗?