0
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?

4

1 回答 1

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()
于 2017-12-11T23:34:20.173 回答