当两个坐标数组在彼此的10范围内时,如何传递If语句?



我正在使用Pygame编程类,需要重新创建一个游戏的标签。当标记器的坐标在玩家坐标的10范围内时,我试图传递一个if语句。我试图在if语句中使用'in range()',但它似乎不起作用。我不知道我做错了什么。

if (pos[0] == enemypos[0] & pos[1] == enemypos[1]):
font = pygame.font.SysFont('Calibri', 25, True, False)
gameovertext = font.render("You're IT", True, WHITE)
screen.blit(gameovertext, [x_mouse+10, y_mouse+10])

相减以获得位置差,而不是检查相等:

if abs(pos[0] - enempypos[0]) < 10 and abs(pos[1] - enempypos[1]) < 10:

还可以计算欧几里得距离。

可以使用标准数学库中的dist函数来计算欧几里得距离。

import dist from math
if dist(pos, enemypos) >= 10:
# in range

如果你将这两组坐标相减,那么你将得到它们之间的差值。该值可能为负值,因此您还需要使用abs()

if (abs(pos[0] - enemypos[0]) < 10 and abs(pos[1] - enemypos[1]) < 10:

相关内容

  • 没有找到相关文章