为什么这个c.move功能不起作用?

时间:2017-03-14 18:20:51

标签: python tkinter pong

所以我在python中创建了一个非常基本的pong游戏,作为我的第一个独立项目之一,只是为了看看我所知道的并测试自己。告诉我,为什么Tkinter模块不能使用这段代码?

HEIGHT=500
WIDTH=800
window=Tk()
window.title('PONG!')
c=Canvas(window,width=WIDTH,height=HEIGHT,bg='black')
c.pack()

def pongstick():
    c.create_polygon(20,30, 30,30, 30,100, 20,100, fill='white')

pong1=pongstick()
MID_X = WIDTH/2
MID_Y=HEIGHT/2
c.move(pong1, MID_X, MID_Y)

这会返回以下错误:

Traceback (most recent call last):
  File "/Users/jackstrange/Documents/Untitled.py", line 16, in <module>
    c.move(pong1, MID_X, MID_Y)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/tkinter/__init__.py", line 2430, in move
    self.tk.call((self._w, 'move') + args)
_tkinter.TclError: wrong # args: should be ".4385131376 move tagOrId xAmount yAmount"

我可能只是完全愚蠢而忘记了一些非常明显的事情,但我不知道为什么这不起作用!

1 个答案:

答案 0 :(得分:1)

您没有返回ID。试试这个:

def pongstick():
    return c.create_polygon(20,30, 30,30, 30,100, 20,100, fill='white')