Ваш ожидаемый результат - это список, а не словарь. Исправить ваш код будет использование вашего dict для подсчета, но добавление к списку:
>>> liste = ['a','b','a','a','b']
>>>
>>> compte = dict.fromkeys(liste,0) #Or use a default dict
>>> result = []
>>> for valeur in liste:
... compte[valeur] += 1
... result.append((valeur,compte[valeur]))
...
>>> print(result)
[('a', 1), ('b', 1), ('a', 2), ('a', 3), ('b', 2)]
Не совсем уверен, что происходит, но вот некоторые вещи, которые нужно попробовать:
Вы можете установить маску для всех единиц с помощью self.mask.fill (). На этом этапе столкновение маски должно быть идентичным столкновению на основе прямоугольника.
Вы можете вызвать print (self.mask.count ()), которая покажет количество установленных пикселей. Убедитесь, что это не 0 или что-то еще.
Вы можете вызвать i.mask.overlap (Player.mask (0, 0)) и подтвердить, что они перекрываются, когда имеют одинаковый верхний левый угол.
Это может быть проблемой при создании маски, или смещения в некотором роде неверны; это должно сузить проблему.
Одно из моих изображений не имело прозрачности, в этом была проблема.