PyGame. Столкновение анимаций двух спрайтов

Надо сделать так, чтобы при анимации атаки игрока вправо(когда нажмется кнопка "атаковать") и постоянно бегающими влево врагами происходила реакция(типо столкновение), а именно, чтобы он отскакивал и его полоска здоровья уменьшалась. 1.В общем я делал это так: в момент нажатия кнопки "атаки", анимацию атаки игрока, состоящую из 4 картинок, сделал объектом и добавил в группу, также как и анимацию бега врага налево, состоящую примерно из 6 картинок. 2.Вложенным циклом проходился по одной и другой группе, и использовал функцию attack.rect.collidepoint(enemy.rect.center). 3.Потом добавлял врагу по Х-у, чтобы он отскакивал.

Проблемы:

  1. И это работает, но некорректно, потому что каждый кадр, если попадал по кадру врага отталкивал его
  2. Также слышал, что в таких "многокартинных" спрайтах лучше использовать spritecollide, пытался, но не очень понял как это работает.
  3. Также я хотел, чтобы при ударе, у врага отнималось здоровье, и тогда, когда здоровье будет равным 0, он уничтожится => => Здоровье сделал в виде простой поверхности шириной 100 и при столкновении у него отнималась 20 от ширины. Если ширина будет 0, то соответственно <=enemy.kill()==> но ведь у меня здесь типо группа из объектов, которые представляю собой 6 картинок анимации бега, и что получается, что будет уничтожатся, а kill вообще не работал. В общем вопрос: как сделать столкновение между двумя объектами, которые состоят из нескольких спрайтов, т.е. игра анимированна, и как будет лучше делать что-то подобное. Наверно можно spritecollide, но если это возможно, то хотелось бы прочитать объяснения в комментариях пример кода, если возможно :)

Ответы (0 шт):