我正在使用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] )
uj5u.com熱心網友回復:
如果你把這兩組坐標互相減去,那么你將得到它們之間的差值。
這個值可能是負的,所以你還需要使用abs(on the values)
if (abs(pos[0] - enemypos[0] ) <。 = 10 and abs(pos[1] - enemypos[1] ) < = 10:
uj5u.com熱心網友回復:
將它們相減以得到位置的差異,而不是檢查相等:
if abs(pos[0] - enempypos[0] ) < 10 and abs(pos[1] - enempypos[1] ) <。10:
你也可以計算歐幾里得距離。
。uj5u.com熱心網友回復:
你可以使用標準數學庫中的dist函式來計算歐幾里德距離。
import dist from math
if dist(pos, enemypos) >= 10:
# in range。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/334238.html
標籤:
上一篇:如何處理nodejs的嵌套錯誤
