Обновление группы Pygame не принимает аргументов

#python #pygame #typeerror

#python #pygame #ошибка типа

Вопрос:

Я читал о подобных проблемах в других местах, но там сказано просто добавить «self» в определение функции. Когда я проверяю файл, это self , на самом деле в нем уже есть ключевое слово self! Вот трассировка:

 Traceback (most recent call last):
  File "C:UsersBrendaDocumentsThe Nick FolderMobile Fortress War 3MFWRT3 - TileClass testTitle.pyw", line 142, in <module>
    SelectServer.main()
  File "C:UsersBrendaDocumentsThe Nick FolderMobile Fortress War 3MFWRT3 - TileClass testSelectServer.pyw", line 44, in main
    Main.mainloop()
  File "C:UsersBrendaDocumentsThe Nick FolderMobile Fortress War 3MFWRT3 - TileClass testMain.pyw", line 72, in mainloop
    globals.alltiles.update()
  File "C:Python32libsite-packagespygamesprite.py", line 462, in update
    s.update(*args)
TypeError: update() takes no arguments (1 given)
  

И я назвал это так:

 globals.alltiles.update()
  

Кто-нибудь может помочь?

Комментарии:

1. Что происходит, когда вы просто не передаете ему аргумент?

Ответ №1:

я немного опоздал, но, вероятно, это из-за неправильного объявления метода обновления для каждой карты (который, я полагаю, является подклассом pygame.sprite.Спрайт)

оно должно быть объявлено как «def update (self)», а не «def update ()»

Ответ №2:

Без кода для отладки это будет игра в угадайку, но для дальнейшего использования группы спрайтов создаются следующим образом:

 #first create a sprite class
class Card(pygame.sprite.Sprite):
    def __init__(self,img,pos):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(os.path.join('img','cards', img))
        self.rect = self.image.get_rect()
        self.rect.center = pos

#then create a group
mycards = pygame.sprite.Group()

#then add a sprite to the group
holders.add(Card('ace_spade.jpg',coord))