2017-12-08 22 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ですか?RcenterXを再計算する必要がありますか?適切な人々がこれを読むようにタグを追加してください – Spektre

+0

それはちょうどpythonです – maggie

答えて

0

2つの基本的な変更:お客様のifステートメントはwhileループにする必要があります。

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() 
関連する問題