我的错在哪里
”此代码只是我的代码的一部分 我只是复制了一部分”
import turtle
wn=turtle.Screen()
wn.bgcolor("black")
wn.title("Pacman")
wn.setup(900,700)
class Pacman(turtle.Turtle):
def __init__(self):
turtle.Turtle.__init__(self)
self.shape("square")
self.color("yellow")
self.penup()
self.speed(0)
def up(self):
self.goto(self.xcor(),self.ycor()+24)
def down(self):
self.goto(self.xcor(),self.ycor()-24)
def left(self):
self.goto(self.xcor()-24,self.ycor())
def right(self):
self.goto(self.xcor()+24,self.ycor())
wn.listen()
wn.onkey(Pacman.down, "Down")
wn.onkey(Pacman.up, "Up")
wn.onkey(Pacman.right, "Right")
wn.onkey(Pacman.left, "Left")
wn.tracer(0)
while True:
wn.update()
失败
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\asus\AppData\Local\Programs\Python\Python37-
32\lib\tkinter\__init__.py", line 1702, in __call__
return self.func(*args)
File "C:\Users\asus\AppData\Local\Programs\Python\Python37-
32\lib\turtle.py", line 686, in eventfun
fun()
TypeError: up() missing 1 required positional argument: 'self'
当我单击“向右”,“向下”,“向上”或“向左按钮”正方形不动时,在控制台中写入失败
答案 0 :(得分:0)
“吃豆人”是一个类模板,因此您不能像这样调用方法。您应该创建一个Pacman对象(如下所示):
new_pacman = Pacman()
然后您可以像这样运行函数:
new_pacman.up()
或者(如果我没记错的话),您可以尝试一下,我认为应该也可以:
Pacman().up() which
答案 1 :(得分:0)
在pacman_instance = Pacman()
之前做wn.listen()
问题是您正在尝试对类而不是类的实例进行操作
答案 2 :(得分:0)
如果您仅在行Pacman = Pacman()
前添加wn.listen()
,它将起作用!
问题是您正在尝试访问未实例化的类,并使用此行创建此实例,并且一切将正常运行;)