[英]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.