2017-12-08 4 views
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시에 멈출 수 있습니까?개체가 Zelle 그래픽에서 움직이지 않는 이유는 무엇입니까?

+2

어떤 언어/IDE/OS입니까? 적절한 사람들이 이것을 읽을 것입니다 그래서 태그를 추가 – Spektre

+0

그냥 파이썬입니다 – maggie

답변

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() 
관련 문제