Python 3.5 AttributeError:';播放器';对象没有属性';posX';
所以我找到了一些类似问题的答案,但它们似乎不适合我的情况。下面是我尝试使用的类文件:Python 3.5 AttributeError:';播放器';对象没有属性';posX';,python,inheritance,pygame,attributeerror,python-3.5,Python,Inheritance,Pygame,Attributeerror,Python 3.5,所以我找到了一些类似问题的答案,但它们似乎不适合我的情况。下面是我尝试使用的类文件: class Characters(object): def __init__(self,health,posX,posY,width,height,dead,moveSpeed,yMove,xMove): self.health = health self.posX = posX self.posY = posY self.width = width self.heigh
class Characters(object):
def __init__(self,health,posX,posY,width,height,dead,moveSpeed,yMove,xMove):
self.health = health
self.posX = posX
self.posY = posY
self.width = width
self.height = height
self.dead = dead
self.yMove = yMove
self.xMove = xMove
class Player(Characters):
def __init__(self,images,gameOver):
self.images = images
self.gameOver = gameOver
def move(self):
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.gameOver = True
keysPressed = pygame.key.get_pressed()
if keysPressed[pygame.K_w]:
self.yMove = -self.moveSpeed
self.image = self.images[1]
if keysPressed[pygame.K_s]:
self.yMove = self.moveSpeed
self.image = self.images[0]
if keysPressed[pygame.K_a]:
self.xMove = -self.moveSpeed
self.image = self.images[2]
if keysPressed[pygame.K_d]:
self.xMove = self.moveSpeed
self.image = pygame.transform.flip(self.images[2],True,False)
self.posX += self.xMove
self.posY += self.yMove
return (self.image,self.posX,self.posY,self.gameOver)
下面是我试图用来调用模块Player.move()
的主函数的一部分:
当我这样做时,它告诉我,
“Player”对象没有属性“posX”
。根据我的理解,玩家应该继承角色的属性,但这里不是。我也尝试过使用super()
方法,但它告诉我缺少变量。有什么建议吗?您需要初始化字符类,如下所示:
class Player(Characters):
def __init__(self,images,gameOver):
Characters.__init__(self)
你确实需要使用super。你应该展示你是如何尝试的,你犯了什么错误。
class Player(Characters):
def __init__(self,images,gameOver):
Characters.__init__(self)