繁体   English   中英

Python Turtle Pong Game 球和桨碰撞

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM