Столкновение спрайтовой маски не работает (работает прямое столкновение)

Ваш ожидаемый результат - это список, а не словарь. Исправить ваш код будет использование вашего 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)]
0
задан Stefan Förster 18 January 2019 в 20:34
поделиться

2 ответа

Не совсем уверен, что происходит, но вот некоторые вещи, которые нужно попробовать:

Вы можете установить маску для всех единиц с помощью self.mask.fill (). На этом этапе столкновение маски должно быть идентичным столкновению на основе прямоугольника.

Вы можете вызвать print (self.mask.count ()), которая покажет количество установленных пикселей. Убедитесь, что это не 0 или что-то еще.

Вы можете вызвать i.mask.overlap (Player.mask (0, 0)) и подтвердить, что они перекрываются, когда имеют одинаковый верхний левый угол.

Это может быть проблемой при создании маски, или смещения в некотором роде неверны; это должно сузить проблему.

0
ответ дан user3757614 18 January 2019 в 20:34
поделиться

Одно из моих изображений не имело прозрачности, в этом была проблема.

0
ответ дан Stefan Förster 18 January 2019 в 20:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: