SFML и C++ Уроки \ Разработка игр › Форумы › SFML Graphics › Смещение взаимодействия с объектами › Ответ в теме: Смещение взаимодействия с объектами
Ясно. Просто другое интересно. Связано или нет, понять сейчас не могу. Я слишком мало работал программировал вообще и с сфмл в частности
Очевидно, что 5 и 25 в два раза меньше реальных размеров.
НО вы ставили setorigin(w/2, h/2) то есть точка находится посередине спрайта. То есть x и y это середина спрайта и если считать от неё w или h, то они будут в два раза больше, поэтому ваш персонаж на первом скрине не мог подойти ближе, пока Вы не подобрали размеры где-то в половину спрайта вручную.
В общем из-за сеториджин получается смещение между размерами спрайта и объекта, ибо у вас спрайт выводится в координаты xy с середины, а объект с левого верхнего угла. И спрайт относительно объекта смещён выше и левее.
Мне так кажется. Так что надо теперь совместить прямоугольники в функции
getRect() return FloatRect (x-w\2, y-h\2,w,h)