Как создать универсальную коллизию для спрайтов в pascal(wingraph)

Ну "прозрачные" , просто в винграфе они и есть черные. Все , что ими не заполнено должно сталкиваться с другими цветами, а не смешиваться,входить в них. Мне нужен алгоритм определения цвета у 2 картинок, которые столкнулись. Алгоритм столкновения через нахождения вектора между 2 картинками, если он меньше размера 1 картинки, то они пересеклись. Теперь когда они пересеклись надо узнать какие пиксели пересеклись, если это черные то картинка двигается дальше, а если это пиксели разного или одного цвета, то происходит логика относительно того, что пересеклось