当玩家不在门附近时,如何实现关闭门的功能?
How to make a function to close a door when the player is not near it?
所以我在 Java 中制作了德军总部的 3d 副本并且我已经完成了一个门列表以从 1(关闭)更改为 2(打开)并且当玩家时我想制作 2 到 1不在附近
我有 2 个玩家变量(yPos,xPos)和 2 个门变量(行,列)
首先,我认为 "ibm-doors" 不适合你的问题 ^^
其实这是一道数学题。您可以使用此公式计算玩家和门之间的距离(您可以根据需要调整变量名称和运算符):
playerDoorDistance = sqrt((player.xPos - door.xPos)^2) + (player.yPos - door.yPos)^2)
其中 sqrt 是括号之间的平方根,^2 是括号之间的平方。
计算后,您只需检查此距离是否大于您选择的关门值即可。
如果你喜欢更简单的东西并且需要更少的计算,你可以只验证 abs(player.xPos - door.xPos)
和 abs(player.yPos - door.yPos)
大于你选择的值(abs 是括号之间的绝对值) 关门。它将验证您的播放器是否在门周围的方形框外。
如果你完全不想数学,你可以看看这个,和上面一样(你也可以根据自己的需要调整):
if (player.xPos - door.xPos > chosenValue || door.xPos - player.xPos > chosenValue || player.yPos - door.yPos > chosenValue || door.yPos - player.yPos > chosenValue)
then closeTheDoor()
所以我在 Java 中制作了德军总部的 3d 副本并且我已经完成了一个门列表以从 1(关闭)更改为 2(打开)并且当玩家时我想制作 2 到 1不在附近 我有 2 个玩家变量(yPos,xPos)和 2 个门变量(行,列)
首先,我认为 "ibm-doors" 不适合你的问题 ^^
其实这是一道数学题。您可以使用此公式计算玩家和门之间的距离(您可以根据需要调整变量名称和运算符):
playerDoorDistance = sqrt((player.xPos - door.xPos)^2) + (player.yPos - door.yPos)^2)
其中 sqrt 是括号之间的平方根,^2 是括号之间的平方。
计算后,您只需检查此距离是否大于您选择的关门值即可。
如果你喜欢更简单的东西并且需要更少的计算,你可以只验证 abs(player.xPos - door.xPos)
和 abs(player.yPos - door.yPos)
大于你选择的值(abs 是括号之间的绝对值) 关门。它将验证您的播放器是否在门周围的方形框外。
如果你完全不想数学,你可以看看这个,和上面一样(你也可以根据自己的需要调整):
if (player.xPos - door.xPos > chosenValue || door.xPos - player.xPos > chosenValue || player.yPos - door.yPos > chosenValue || door.yPos - player.yPos > chosenValue)
then closeTheDoor()