Не связывался в B3D 2D-картинками.. Не знаю про скорости 2D-алгоритмов.
Я в delphi так делал: 1) у камня есть позиция x,y и высота,ширина.
2) потом можно проверить попала точка курсора (при клике) в позицию камня +-высота +-ширина:
если (x_камня+ширина<x_курсора>x_камня-ширина) и (y_камня+высота<y_курсора>y_камня-высота)
Так. Пишу быстро на словах.
UpdateStones(); обновляем камни
DrawImage cursor, mx, my
И сперва игроку отобрази курсор, потом вычисляй что он (курсор) натворит.