#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))