[英]Python Turtle Pong Game Ball and Paddle Collisions
#Paddle and Ball collisions
if (ball.xcor() > 340 and ball.xcor() < 350) and (ball.ycor() < paddle_b.ycor() + 40 and ball.ycor() > paddle_b.ycor() -40):
ball.setx(340)
ball.dx *= -1
if (ball.xcor() < -340 and ball.xcor() > -350) and (ball.ycor() < paddle_a.ycor() + 40 and ball.ycor() > paddle_a.ycor() -40):
ball.setx(-340)
谁能解释一下这段代码的第一行?为什么使用 -40 和 +40
谁能解释一下这段代码的第一行?为什么使用 -40 和 +40
ball.ycor()
和paddle_b.ycor()
都是点。 然而,桨本身是某种 80 像素高的矩形实体。 所以我们需要确定球的垂直中心点是否位于球拍的任何部分上:
and (ball.ycor() < paddle_b.ycor() + 40 and ball.ycor() > paddle_b.ycor() -40)
一种更惯用的写法可能是:
and paddle_b.ycor() -40 < ball.ycor() < paddle_b.ycor() + 40
同样对于球的水平位置:
(ball.xcor() > 340 and ball.xcor() < 350)
或者:
340 < ball.xcor() < 350
我们不需要考虑桨的当前水平位置,因为它不会水平移动——它相对于 X 轴处于固定位置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.