为什么对象不会停止在Zelle图形中移动?

时间:2017-12-08 08:53:28

标签: python move zelle-graphics

from graphics import *
win = GraphWin("Circle Race", 500, 500)

#red circle position
RcenterX = 50
RcenterY = 100
Rright = RcenterX+25
Rleft = RcenterY

# The Red circle
cr = Circle(Point(RcenterX,RcenterY), 25)
cr.setFill('red')
cr.setOutline('black')
cr.draw(win)


if RcenterX<=400:
    win.getMouse()
    cr.move(50 ,0)
elif RcenterX>300:
    win.getMouse()
    win.close()

我试图在每次点击后将红色圆圈移动50个像素,并在圆圈的右边缘达到400时停止。 但它达到400后仍在继续前进? 怎么能让它停在400?

1 个答案:

答案 0 :(得分:0)

两个基本更改:您的if语句需要是while循环;您需要重新计算RcenterX,无论是自己更新还是询问您的圈子对象:

from graphics import *

win = GraphWin("Circle Race", 500, 500)

# red circle position
RcenterX, RcenterY = 50, 100
Rradius = 25

# The Red circle
cr = Circle(Point(RcenterX, RcenterY), Rradius)
cr.setFill('red')
cr.setOutline('black')
cr.draw(win)

while cr.getCenter().getX() + Rradius/2 < 400:  # right edge stops at 400
    win.getMouse()
    cr.move(50, 0)

win.getMouse()
win.close()