[英]Why won't my collision detection in python work?
我目前正在嘗試為我的一個班級制作一個簡單的空氣曲棍球比賽。 我正在努力做到這一點,因此目標不會構成屏幕的整個側面,而只是其中的一小部分。 因此,當冰球擊中屏幕的不是目標的一側時,它會彈開並繼續比賽。 但由於某種原因,冰球只是穿過屏幕的一側,游戲並沒有重置。 如果這是一個愚蠢的問題或者描述性不夠,我很抱歉這是我第一次這樣做。
編碼:
if(self.puckSquare.left < 0 and self.puckSquare.height > 143 and self.puckSquare.height < 310):
self.gameLoop = False
self.rightScore += 1
print("Left Player " + str(self.leftScore) + " Right Player" + str(self.rightScore))
elif(self.puckSquare.left < 0 and self.puckSquare.height < 143 and self.puckSquare.height > 310):
self.puckspeedX = -self.puckspeedX
你的elif
的邏輯是錯誤的。 您正在檢查您是否在目標的兩側之外,這永遠不會發生。 您需要一個or
而不是and
來進行height
檢查。
elif self.puckSquare.left < 0 and (self.puckSquare.height < 143 or self.puckSquare.height > 310):
或者您可以完全放棄高度檢查,因為您已經在前面的if
檢查中測試了目標區域。 你只需要elif
來檢查你是否還在碰壁。
elif self.puckSquare.left < 0:
注意: if
或elif
語句中的條件不需要括號。 其他一些語言可以,但不是 Python。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.