响应java中的贴图碰撞



我只是想知道,在java中响应2d贴图碰撞的最佳方法是什么。

我有代码设置,所以当玩家矩形与瓷砖矩形相交,这是矩形的2d数组(矩形[][]collRects)的一部分,碰撞发生。

我知道如何设置,但是当我运行程序并且玩家与贴图发生碰撞时,玩家会沿着内部贴图的边缘移动并最终通过碰撞矩形。

我现在响应碰撞的方式是:

  1. 我用if语句检查玩家撞到了贴图的哪一边。
  2. 玩家有一个速度变量,所以它在玩家在碰撞前移动的任何轴上设置为零值。

我想我想说的是,什么是最好的方式来应对碰撞?

非常感谢你的帮助,谢谢。

如果我理解正确的话,你似乎对检测玩家(精灵)和贴图(而不是其他自由移动的精灵)之间的碰撞感兴趣。

为此,一些简单的模块算法应该足以检测(从玩家的左上角(x,y)坐标)哪个贴图在地图上碰撞。

假设地图是由NxM的贴图矩阵组成,从0…水平N-1, 0..M-1垂直,且贴图大小为32x32像素,则碰撞贴图坐标(i,j)为:

i = floor(球员)X/32);

j = floor(玩家)

最新更新