使用python / turtle创建代码,将乌龟从墙上弹开

时间:2017-10-10 23:01:42

标签: python

我需要让乌龟永远地反弹窗户的边缘,我唯一遇到的问题是每次撞到墙壁时将乌龟向前设置。通过将任何设定的数字放入前进,它会在几个循环中离开屏幕。我需要在前进功能中做些什么,以确保它只能到墙壁并“反弹”?

import turtle

window = turtle.Screen()

# Create a turtle and name it bob.
bob = turtle.Turtle()
window.reset()
window.setworldcoordinates(-50,-50,50,50)
bob.left(1)
bob.fd(51)
bob.speed(10)
while True:
    xBob = bob.xcor()
    yBob = bob.ycor()
    print(xBob,yBob)
    if xBob <= -50: 
        heading = bob.heading()
        bob.setheading(180 - heading)
        bob.fd()
    elif xBob >= 50:
        heading = bob.heading()
        bob.setheading(180 - heading)
        bob.fd()
    elif yBob <= -50:
        heading = bob.heading()
        bob.setheading(180 - heading)
        bob.fd()
    elif yBob >= 50:
        heading = bob.heading()
        bob.setheading(180 - heading)
        bob.fd()
window.exitonclick()

1 个答案:

答案 0 :(得分:0)

听起来你想要i以合理的角度来回反弹。您的帖子中隐藏着一些问题。首先,不要计算距离墙壁的距离,而是可以继续向前移动1直到你撞到墙壁。这将是近似的;如果你需要它完全,那么你需要使用距离公式。此外,当你敲击顶部和底部墙壁时,你改变方向的逻辑是关闭的。我还做了一些其他的更改,比如制​​作x和y尺寸变量。

turtle