使用参数goblin = enemey(100,410,64,64,450)调用类时TypeError:object()不带参数。所有的代码和调用看起来都很好,我找不到问题。
class enemey(object):
walkRight = [pygame.image.load('R1E.png'), pygame.image.load('R2E.png'), pygame.image.load('R3E.png'),
pygame.image.load('R4E.png'), pygame.image.load('R5E.png'), pygame.image.load('R6E.png'),
pygame.image.load('R7E.png'), pygame.image.load('R8E.png'), pygame.image.load('R9E.png'),
pygame.image.load('R10E.png'), pygame.image.load('R11E.png')]
walkLeft = [pygame.image.load('L1E.png'), pygame.image.load('L2E.png'), pygame.image.load('L3E.png'),
pygame.image.load('L4E.png'), pygame.image.load('L5E.png'), pygame.image.load('L6E.png'),
pygame.image.load('L7E.png'), pygame.image.load('L8E.png'), pygame.image.load('L9E.png'),
pygame.image.load('L10E.png'), pygame.image.load('L11E.png')]
def __int__(self, x, y, width, height, end):
self.x = x
self.y = y
self.width = width
self.height = height
self.end = end
self.walkCount = 0
self.vel = 3
self.path = [self.x, self.end] # change variables <- to random for random moving? Make sure to try!
def draw(self,gameDisplay):
self.move()
if self.walkCount + 1 >= 33:
self.walkCount = 0
if self.vel > 0:
gameDisplay.blit(self.walkRight[self.walkCount // 3], (self.x, self.y))
self.walkCount += 1
else: # change to elif to add 3d movement
gameDisplay.blit(self.walkLeft[self.walkCount // 3], (self.x, self.y))
self.walkCount += 1
def move(self):
if self.vel > 0:
if self.x + self.vel < self.path[1]:
self.x += self.vel
else:
self.vel = self.vel * -1
self.walkCount = 0
else:
if self.x - self.vel > self.vel > self.path[0]:
self.x += self.vel
else:
self.vel = self.vel * -1
self.walkCount = 0
答案 0 :(得分:1)
问题是您的构造函数拼写错误 - 它应该是__init__
,而不是__int__
。因此,它使用默认构造函数,它不接受任何参数。