0

私はPythonが初めてで、自己学習しているため、多くの助けが必要です. 複数の画像オブジェクトを一度に表示、描画、移動するために、John Zelle によって書かれた graphics.py パッケージを利用しようとしています。

スピード、startX 位置、startY 位置を取るクラス Enemy オブジェクトがあります。このクラスには、startX の位置を取得して速度に追加する move メソッドもあります。

class Enemy(object):

    def __init__(self, speed, startXpos, startYpos):
        self.speed = speed
        self.x = startXpos
        self.y = startYpos

    def move(self):
        self.x += self.speed

main メソッドでは、graphics.py を使用して Enemy の Image オブジェクトを描画しました。すべての敵は同じイメージで同じ開始位置から開始しますが、敵の移動速度は異なります。

    win = GraphWin("Enemy", 1000, 500)
    myEnemies = []

    e = Image(Point(50, 200), "enemy.gif")  # use speed as y position, too
    e.draw(win)  # add it to the window
    e2 = Image(Point(50, 200), "enemy.gif")  # use speed as y position, too
    e2.draw(win)  # add it to the window
    e3 = Image(Point(50, 200), "enemy.gif")  # use speed as y position, too
    e3.draw(win)  # add it to the window

    enemy1 = Enemy(40, 50, 0)
    enemy2= Enemy(50, 50, 0)
    enemy3 = Enemy(60,50, 0)
    myEnemies.append((enemy1,e))
    myEnemies.append((enemy2,e2))
    myEnemies.append((enemy3,e3))

    for i in range(40):  # main animation loop
        for enemy in myEnemies:  # loop through the enemy list
            enemy[0].move()  
            time.sleep(1)  # wait a second...
    win.close()

画像オブジェクトは移動しません。ここで何が間違っていますか?

4

1 に答える 1