所以我一直在研究类和继承,从我有限的理解来看,我认为属性应该被继承。但是,下面的第一组代码引发此错误:“AttributeError:type对象”“Characters”“没有具有以下代码的属性”“posX”“:
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.image = image
self.yMove = yMove
self.xMove = xMove
class Player(Characters):
def __init__(self,images,gameOver):
self.images = (config.get('player'))
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]:
Characters.yMove = -Characters.moveSpeed
Characters.image = self.images[1]
if keysPressed[pygame.K_s]:
Characters.yMove = Characters.moveSpeed
Characters.image = self.images[0]
if keysPressed[pygame.K_a]:
Characters.xMove = -Characters.moveSpeed
Characters.image = self.images[2]
if keysPressed[pygame.K_d]:
Characters.xMove = Characters.moveSpeed
Characters.image = pygame.transform.flip(self.images[2],True,False)
Characters.posX += Characters.xMove
Characters.posY += Characters.yMove
使用下面的代码,它抛出错误:AttributeError:'pygame.表面'对象没有属性'posX'
class Player(Characters):
def __init__(self,images,gameOver,posX,posY):
self.images = (config.get('player'))
self.gameOver = gameOver
self.posX = posX
self.posY = posY
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]:
Characters.yMove = -Characters.moveSpeed
Characters.image = self.images[1]
if keysPressed[pygame.K_s]:
Characters.yMove = Characters.moveSpeed
Characters.image = self.images[0]
if keysPressed[pygame.K_a]:
Characters.xMove = -Characters.moveSpeed
Characters.image = self.images[2]
if keysPressed[pygame.K_d]:
Characters.xMove = Characters.moveSpeed
Characters.image = pygame.transform.flip(self.images[2],True,False)
self.posX += Characters.xMove
self.posY += Characters.yMove
我尝试过使用*args
和**kwargs
、super
方法和Parent.__init__(self, attr1, attr2,...)
,但仍然会抛出相同的错误。我做错什么了吗?你知道吗
实例变量是继承的,因此只需通过
self
引用即可访问,不要使用Characters
。作为一个基本示例:这里,B从A继承实例变量foo,如您所见,self.foo文件在B的实例中,返回继承的值。你知道吗
相关问题 更多 >
编程相关推荐