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

2024-04-25 05:11:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Pygame进行编程类,需要重新创建一个tag游戏。当标记器的坐标在玩家坐标的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])

3条回答

如果你把两组坐标相减,你就会得到它们之间的差值。 此值可能为负值,因此还需要使用abs()

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

您可以使用标准数学库中的dist函数来计算欧氏距离

import dist from math

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

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

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

您还可以计算Euclidean distance

相关问题 更多 >