Java 当玩家不在门附近时,如何实现关门功能?

Java 当玩家不在门附近时,如何实现关门功能?,java,ibm-doors,Java,Ibm Doors,所以我用Java制作了一个wolfenstein 3d副本,我做了一个门列表,从1(关闭)变为2(打开),当玩家不在附近时,我想把2变为1 我有两个变量用于播放器(yPos,xPos)和两个变量用于门(行,列)首先,我认为“ibmdoors”不是你的问题的好标签^^ 实际上,这是一道数学题。您可以使用此公式计算播放器与门之间的距离(您可以根据需要调整变量名称和运算符): 其中sqrt是括号之间的平方根,^2是括号之间的平方 计算完成后,您可以检查此距离是否大于您选择的关门值 如果您喜欢更简单且需

所以我用Java制作了一个wolfenstein 3d副本,我做了一个门列表,从1(关闭)变为2(打开),当玩家不在附近时,我想把2变为1
我有两个变量用于播放器(yPos,xPos)和两个变量用于门(行,列)

首先,我认为“ibmdoors”不是你的问题的好标签^^

实际上,这是一道数学题。您可以使用此公式计算播放器与门之间的距离(您可以根据需要调整变量名称和运算符):

其中sqrt是括号之间的平方根,^2是括号之间的平方

计算完成后,您可以检查此距离是否大于您选择的关门值

如果您喜欢更简单且需要更少计算的东西,您可以验证
abs(player.xPos-door.xPos)
abs(player.yPos-door.yPos)
是否大于您选择的值(abs是括号之间的绝对值)以关闭门。它将验证您的玩家是否在门周围的方形框外

如果你根本不想要数学,你可以检查这个,这与上面相同(你也可以根据你的需要调整它):


我不知道ibm doors标签是什么xD,谢谢!不客气。您可以通过删除标签“ibm门”并添加标签“数学”来改进您的问题,供其他可能感兴趣的人使用;-)
playerDoorDistance = sqrt((player.xPos - door.xPos)^2) + (player.yPos - door.yPos)^2)
if (player.xPos - door.xPos > chosenValue || door.xPos - player.xPos > chosenValue || player.yPos - door.yPos > chosenValue || door.yPos - player.yPos > chosenValue)
then closeTheDoor()