1 回答

TA貢獻1866條經驗 獲得超5個贊
您在這里問了幾個不同的問題。我會在這里回答我認為你想問的問題:有沒有辦法檢查整個精靈是否已經越過邊界,而不僅僅是左上角?. 所以,我的回答(請注意,這僅在您的邊界線是線性的情況下才有效):您需要單獨檢查每個角,然后,如果所有角都返回True,那么您繼續前進。例子:
def collision(sprite1, boundary):
def internal_collision(point, boundary):
... # The actual math happens here, returns True/False
corners = []
for h in [0, 1]:
for j in [0, 1]:
corners.append([sprite1.rect.x+(h*sprite1.rect.width),
sprite1.rect.y+(j*sprite1.rect.height)])
corner_check = []
for corner in corners:
corner_check.append(internal_collision(corner, boundary))
return all(corner_check)
我不知道你的代碼是如何工作的,所以我盡量保持它的可塑性和可理解性,這樣你就可以在你自己的代碼中重新實現它。
添加回答
舉報