Python 3.x TypeError:draw()缺少1个必需的位置参数:';赢';
由于某种原因,当我运行这个程序时,我得到了一个错误,即Python 3.x TypeError:draw()缺少1个必需的位置参数:';赢';,python-3.x,pygame,Python 3.x,Pygame,由于某种原因,当我运行这个程序时,我得到了一个错误,即rocket.draw(win)在参数“win”明显存在时缺少该参数 win在程序顶部定义 draw()需要在rocket实例上调用,而不是类本身: class rocket(object): def __init__(self, x, y): self.image = pygame.image.load('sprites/spaceship.png') self.x = x self.y = y self.w
rocket.draw(win)
在参数“win”明显存在时缺少该参数
win
在程序顶部定义 draw()
需要在rocket
实例上调用,而不是类本身:
class rocket(object):
def __init__(self, x, y):
self.image = pygame.image.load('sprites/spaceship.png')
self.x = x
self.y = y
self.width = 72
self.height = 72
self.speed = 5
self.angle = 0
def draw(self, win):
win.blit(char, (self.x,self.y))
def updateGameWindow():
win.blit(bg, (0,0))
rocket.draw(win)
pygame.display.update()
在上面代码的第一行中,您正在创建rocket类的实例,在第二行中,您正在该实例上调用draw()
方法,其中实例本身作为self
参数隐式传递
在您的示例代码中,您从这一行
rocket.draw(win)
中得到一个错误,因为您在类本身而不是实例上调用draw()
,因此实例不会作为self
参数传递,而是为self
参数传递win
参数,因为现在没有预期的win
参数通过,所以一切都崩溃了 我已经试着解决这个问题大约一个小时了哈哈我不敢相信我忘了举个例子。。。非常感谢。
rocket_instance = rocket(some_x, some_y)
rocket_instance.draw(win)