Вы полностью забыли аргумент self
. Ваш __init__
метод должен быть:
def __init__(self,filename,columns,rows):
, а также:
def draw(self,surface,cellIndex, x,y,handle = 0):
и не забывайте, что атрибутам, которые должны быть запомнены экземпляром, также требуется self
перед.
Вы, вероятно, хотите:
def __init__(filename,columns,rows):
self.sheet = image.load(filename)
self.totalCellCount = columns * rows
self.rect = self.sheet.get_rect()
#...
self.handle = list([
(0,0), (-1*halfSpriteWidth,0),(-1*spriteWidth,0),
(0,-1*halfSpriteHeight),(-1*halfSpriteWidth,-1*halfSpriteHeight),
(-1*spriteWidth,-1*halfSpriteHeight),(0,-1*spriteHeight)
(-1*halfSpriteWidth,-1*spriteHeight),(-1*spriteWidth,-1*spriteHeight)])
и draw
также self.handle
при обращении к списку. Кстати, вызов list
тоже не нужен, достаточно квадратных скобок.
Ошибка кортежа из-за отсутствия запятой между двумя кортежами в списке self.handle
:
(0,-1*spriteHeight)(-1*halfSpriteWidth,-1*spriteHeight),
^^^ insert comma here