Java 二维阵列跟踪玩家在实体周围特定空间的移动
好的,我需要一个数组的帮助,我有一个2D数组,玩家可以在其中移动,此时我随机生成一个实体,玩家应该能够与它交互。我有一个相当长的if语句,它跟踪玩家是否接近实体,但是无法在触发提示时增加范围。这个if语句很长,有时让我感到沮丧,但如下所示:Java 二维阵列跟踪玩家在实体周围特定空间的移动,java,arrays,if-statement,Java,Arrays,If Statement,好的,我需要一个数组的帮助,我有一个2D数组,玩家可以在其中移动,此时我随机生成一个实体,玩家应该能够与它交互。我有一个相当长的if语句,它跟踪玩家是否接近实体,但是无法在触发提示时增加范围。这个if语句很长,有时让我感到沮丧,但如下所示: if(((getPlayerX() == getEntityX() - getPlayerRange()) || (getPlayerX() == getEntityX() + getPlayerRange()) || (getPlayerX() == ge
if(((getPlayerX() == getEntityX() - getPlayerRange()) || (getPlayerX() == getEntityX() + getPlayerRange()) || (getPlayerX() == getEntityX())) && ((getPlayerY() == getEntityY() - getPlayerRange()) || (getPlayerY() == getEntityY() + getPlayerRange()) || (getPlayerY() == getEntityY()))){
但是,当范围增加到2时(默认值为1),这将不再有效。我想实现这一点,这样更大范围的玩家仍然可以与这个实体进行交互。有没有一种更简单、更有效的方法呢?像这样的方法怎么样:
int xDistance = Math.abs(getPlayerX() - getEntityX());
int yDistance = Math.abs(getPlayerY() - getEntityY());
if (xDistance <= getPlayerRange() && yDistance <= getPlayerRange()){ ... }
int-xDistance=Math.abs(getPlayerX()-getEntityX());
int-yDistance=Math.abs(getPlayerY()-getEntityY());
如果(xDistance)是的,这工作很好,谢谢一个老兄,已经在这上面停留了一段时间,很抱歉反应太晚,只是刚刚实现了它