Спрайттар соқтығысуын анықтау

Анықтама
Спрайттың екі негізгі қасиеті: image — бейнеленген сурет, rect — спрайтты қамтитын тіктөртбұрышты аймақ. Класс құру арқылы бір типті бірнеше кейіпкерді (мыс. роботтарды) оңай көбейтуге болады.
class Robots(pygame.sprite.Sprite):
    def __init__(self, image_file, location):
        pygame.sprite.Sprite.__init__(self)
        self.image = pygame.image.load(image_file)
        self.rect = self.image.get_rect()
        self.rect.left, self.rect.top = location
Анықтама
pygame.sprite.spritecollide(sprite, group, dokill) — берілген спрайттың топтағы (group) басқа спрайттармен соқтығысқанын тексереді.
Қадам
1Спрайтты уақытша топтан (group) өшіру
2Осы спрайттың топтағы басқалармен соқтығысуын тексеру
3Спрайтты қайта топқа қосу
Есеп: Экран шекарасына жеткен спрайтты кері бағытта серпу.
def move(self):
    self.rect = self.rect.move(self.speed)
    if self.rect.left < 0 or self.rect.right > width:
        self.speed[0] = -self.speed[0]
Жауабы: спрайт шекараға жеткенде x бағытындағы жылдамдық таңбасы кері ауысады, спрайт қарама-қарсы бағытта жылжи бастайды.
Деңгей: Қиын

Роботтардың соқтығысуы

Берілді: pygame.sprite.Group() тобындағы 4 робот, әрқайсысы кездейсоқ бағытта қозғалады.
Табу керек: екі робот соқтығысқанда екеуінің де бағыты өзгеруі керек.
Шешуі:
spritecollide(robot, group, False) нәтиже қайтарса (соқтығысу тіркелсе), robot.speed[0] = -robot.speed[0] және speed[1] да теріске ауысады.
Жауабы: соқтығысқан екі робот та кері бағытта серпіледі.