繁体   English   中英

在Java中响应图块地图碰撞

[英]Responding to tile map collision in java

我只是想知道,在Java中响应2D瓦片地图碰撞的最佳方法是什么。

我设置了代码,以便当“玩家矩形”与“矩形”相交时,该矩形是二维矩形数组(Rectangle [] [] collRects)的一部分,发生碰撞。

我知道如何进行设置,但是当我运行该程序并且播放器与图块发生碰撞时,播放器沿着内部图块的边缘移动,并最终穿过碰撞矩形。

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

  1. 我用if语句检查播放器相撞的方向。
  2. 播放器具有速度变量,因此在碰撞之前,播放器在移动的任何轴上我都设置为零。

我想我想说的是,应对碰撞的最佳方法是什么?

非常感谢您的帮助。

如果我理解正确,似乎您对检测播放器(子画面)和图块(而不是其他自由移动的子画面)之间的配色感兴趣。

为此,一些简单的模块化算法就足以(从玩家的左上角(x,y)坐标)检测地图中正在碰撞的图块。

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

i = floor(player.x / 32);

j = floor(player.y / 32);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM