1 回答

TA貢獻(xiàn)1866條經(jīng)驗(yàn) 獲得超5個(gè)贊
您在這里問(wèn)了幾個(gè)不同的問(wèn)題。我會(huì)在這里回答我認(rèn)為你想問(wèn)的問(wèn)題:有沒(méi)有辦法檢查整個(gè)精靈是否已經(jīng)越過(guò)邊界,而不僅僅是左上角?. 所以,我的回答(請(qǐng)注意,這僅在您的邊界線是線性的情況下才有效):您需要單獨(dú)檢查每個(gè)角,然后,如果所有角都返回True,那么您繼續(xù)前進(jìn)。例子:
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)
我不知道你的代碼是如何工作的,所以我盡量保持它的可塑性和可理解性,這樣你就可以在你自己的代碼中重新實(shí)現(xiàn)它。
添加回答
舉報(bào)