我只是想知道,在java中响应2d tile map碰撞的最佳方法是什么。
我有代码设置,这样当玩家矩形与Tiles Rectangle相交时,Tiles Rectangle是一个2d矩形数组(Rectangle [] [] collRects)的一部分,就会发生碰撞。
我知道如何设置它,但是当我运行程序并且Player与磁贴碰撞时,播放器沿着内部磁贴的边缘移动并最终通过碰撞矩形。
我现在对碰撞的反应方式是:
我想我想说的是,什么是应对碰撞的最好方法?
非常感谢帮助, 谢谢。
答案 0 :(得分:0)
如果我理解正确,似乎你有兴趣检测玩家(精灵)和瓷砖(而不是其他自由移动的精灵)之间的碰撞。
为此,一些简单的模运算应该足以检测(从玩家的左上角(x,y)坐标)哪个图块在地图中碰撞。
假设地图由NxM的平铺矩阵组成,水平编号为0 ... N-1,垂直方向为0..M-1,平铺大小为32x32像素,则为碰撞平铺坐标(i ,j)是:
i = floor(player.x / 32);
j = floor(player.y / 32);