To żeś opisał. Wydaje mi się, że najlepiej by było sprawdzić kiedy dwa obiekty się zetkną (poprzez FloatRect i metodę intersects), a następnie zmienić ich kierunki na przeciwne. Nie ma w tym nic dziwnego. To wszystko możesz znaleźć na blogu SS, odpowiedział przed chwilką.