瓦片地图墙壁层添加碰撞框?有高效便捷的方法?

跪求各位前辈赐教!!

  • 瓦片地图的墙壁层添加Collider有什么好的办法吗?

  • 目前的做法:定位出第一块,然后用for循环遍历到存在TileGID的地方,画上一个跟图片块一样大小的正方型。打开调试就能看到跟墙壁吻合的Collider。

  • 存在问题:这样一块一块添加很吃性能,每一关的随机地图都要卡顿一两秒去添加Collier。

为啥不在tiled editor里加一层?
然后在加载的时候直接将那一层隐藏。
调试的时候显示就行了。

为啥要加碰撞

目测又是一款Roguelike

常规方法是把整个图片分成很多个相同的小方块 可以用一个二维数组来表示 二维中每个元素用 0,1 来表示不可走和可走。具体可以看下 a* 算法。

正常的做法应该不是做碰撞 弄两层 判断下一步是否是在 可行走的层 如果不是 就不走

可以不用物理引擎,做网格检测就好了

调试模式可以用代码直接关掉不碍事,现在是有分层的,主要是碰撞检测需要用到的碰撞框生成的问题比较头疼

发射的自动碰到墙壁的碰撞检测呢,也有类似的方法吗?

人物不是一格一格移动的,地图上任意走动的也可以吗?

网格检测?是有触碰回调类似的接口吗?

应该是通过坐标算的,你这样加碰撞体就算可以 估计也会卡吧到时候

子弹的碰撞也通过坐标计算吗?速度过快好像不可行?

:evergreen_tree:

用坐标算吧,用碰撞才会出现过快超出的情况。