我无法让我的while循环中断。我试图从起点移动圆圈,直到它到达窗口的边缘。我可以让它移动,但它不会停止移动。我尝试过不同类型的循环,甚至添加一个中断,但它仍然不会破坏:/
from time import *
from graphics import *
from random import *
win = GraphWin("My Program", 500,400)
def MoveRight(circle):
circle_center = circle.getCenter()
center_x = circle_center.getX()
center_y = circle_center.getY()
circle.draw(win)
for center_x in range(center_x, 450):
circle.move(10,0)
sleep(.15)
circle_center = circle.getCenter()
my_circle = Circle(Point(200,50), 20)
my_circle.setFill("blue")
MoveRight(my_circle)
编辑: 这已经解决了!
答案 0 :(得分:2)
我认为圆的中心位于200 x轴上 然后在行:
for center_x in range(center_x, 450):
center_x等于200,200(center_x)和450之间的范围是250 然后这个for循环将运行250次。
代码的其余部分
circle.move(10,0)
sleep(.15)
运行250次。所以它将运行250次10步,2500步!
要解决您的问题,您应该这样做:
while center_x != 450:
circle.move(10, 0)
center_x += 10 # Added this
sleep(.15)
修改强>: 我忘了更新center_x ...
(请记住,圆圈不会停在边缘,它会停在450处 如果边缘是450那么它应该有效。)
(圆圈不会停在450处,这个圆圈的中心会。)