提问人:Olivia Smith 提问时间:11/9/2023 最后编辑:Olivia Smith 更新时间:11/9/2023 访问量:28
如何使用 Matter.js 与大型瓦片地图发生冲突
How to use matter.js for collisions with large tilemaps
问:
要求:碰撞系统应能够处理至少 100x100 个瓦片图,其中包含至少 5 个动态实体,最好是 50 个与瓦片图有效交互的动态实体。还会有一些可以与玩家互动的瓷砖,这些瓷砖必须有自己独立的碰撞体。关卡也将是滚动的,因此它应该能够处理动态加载的图块,并能够处理碰撞器的池化。
是否有任何碰撞器或插件可以使用 matter.js 处理此问题,如果没有,在 matter.js 中处理此类瓦片图冲突的首选或标准算法是什么?
我正在考虑存储一个 x 和 y 坐标的 2d 字典,其中包含基于 bresenham 的线算法和“半径”(它们将是方形对撞机,但我将使用半径使它们更容易处理)的 x 和 y 坐标,这将只允许使用最少数量的图块。主体被重用或禁用,以便能够将它们汇集在一起,而不必每次都分配更多的碰撞体,这样在同一位置与瓦片图交互的大量动态实体将只使用相同的主体。尽管如此,我还是有点担心动态实体尽管在平坦的表面上却卡在瓷砖的边缘,是否有任何其他方法可以处理与瓷砖地图的碰撞,尤其是在通常首选的 matter.js 中?
答: 暂无答案
上一个:UE5中精确的武器握把动画
下一个:骑乘平台 Phaser3
评论