2017-01-05 6 views
1

ボールが画面の周りをちょうど跳ね返るプログラムがあります。クラス、リスト、およびforループを使用して、画面の周りを跳ね返るボールを作成しました。 list is not callableというエラーが表示されます。私のリストの下に、ball.appendと書かれているコードの末尾に、呼び出し可能なエラーがありませんが、私はそれを修正する方法がわかりません。

from tkinter import * 
from random import uniform, randrange 
import time 
#left,top,right,bottom 

tk = Tk() 
canvas = Canvas(tk,width=600,height=600) 
canvas.pack() 

class Ball:#ball characteristics 
    def __init__(self,color,size): 
     self.shape = canvas.create_oval(10,10,50,50,fill="blue") 
     self.xspeed = randrange(1,6) 
     self.yspeed = randrange(1,6) 
    def move(self):#ball animation 
     canvas.move(self.shape,self.xspeed,self.yspeed) 
     pos = canvas.coords(self.shape) 
     if pos[0] <= 0 or pos[2] >= 600:#if ball hits the wall# 
      self.xspeed = -self.xspeed 
     if pos[1] <= 0 or pos[3] >= 600: 
      self.yspeed = -self.yspeed 
balls = [] 
for i in range(100): 
    balls.append(Ball("red",50)) 

while True: 
    for ball in balls(): 
     ball.move() 
    tk.update() 
    time.sleep(0.01) 
+2

常に完全なエラーメッセージ(トレースバック)を入れてください。他にも有用な情報があります。 – furas

答えて

1

あなたはballsが、ballsリストであるため、呼び出すことはできませんを呼び出すようにしようとしています。で電話を取る:

for ball in balls(): 
    ball.move() 

は、それは次のようになります。

for ball in balls: 
    ball.move() 

言い換えれば、問題は、エラーメッセージは、それが言った正確にライン上で、言ったことを正確です。

関連する問題