1

Pythonグラフィックスで2つのオブジェクトを同時に移動しようとしています(これはJohn Zelleのgraphics.pyを参照しているようです)、ループで移動を繰り返します。しかし、ループしようとすると、形が消えてしまいます。どうすればこれを修正できますか?

def main():
    win = GraphWin('Lab Four', 400, 400)
    c = Circle(Point(100, 50), 40)
    c.draw(win)
    c.setFill('red')
    s = Rectangle(Point(300, 300), Point(350, 350))
    s.draw(win)
    s.setFill('blue')
    s.getCenter()
    while not c.getCenter() == Circle(Point(400, 50), 40):
        c.move(10, 0)
        s.move(-10, 0)
    win.getMouse
    while not (win.checkMouse()):
        continue
    win.close()
4

1 に答える 1

0

コードには明らかな問題がいくつかあります。円の中心の Point オブジェクトを円オブジェクトと比較します。つまり、Point オブジェクトと比較する必要があります。win.getMouse()呼び出しで括弧を省略しました。以下のリワークにより、これらの問題が修正されます。

from graphics import *

WIDTH, HEIGHT = 400, 400
RADIUS = 40

def main():
    win = GraphWin('Lab Four', WIDTH, HEIGHT)

    c = Circle(Point(100, 50), RADIUS)
    c.draw(win)
    c.setFill('red')

    s = Rectangle(Point(300, 300), Point(350, 350))
    s.draw(win)
    s.setFill('blue')

    while c.getCenter().getX() < WIDTH - RADIUS:
        c.move(10, 0)
        s.move(-10, 0)

    win.getMouse()
    win.close()

main()

中心の Point と Point を比較する代わりに、水平に移動しているため X 位置を確認しました。

于 2017-01-08T06:36:25.107 に答える