Ответ в теме: Смещение взаимодействия с объектами

SFML и C++ Уроки \ Разработка игр Форумы SFML Graphics Смещение взаимодействия с объектами Ответ в теме: Смещение взаимодействия с объектами

#5016
+1

lexpartizan
Участник
Сообщений:7

Зарегистрирован:
04.06.2018

Репутация:2

Ясно. Просто другое интересно. Связано или нет, понять сейчас не могу. Я слишком мало работал программировал вообще и с сфмл в частности

Очевидно, что 5 и 25 в два раза меньше реальных размеров.

НО вы ставили setorigin(w/2, h/2) то есть точка находится посередине спрайта. То есть x и y это середина спрайта и если считать от неё w или h, то они будут в два раза больше, поэтому ваш персонаж на первом скрине не мог подойти ближе, пока Вы не подобрали размеры где-то в половину спрайта вручную.

В общем из-за сеториджин получается смещение между размерами спрайта и объекта, ибо у вас спрайт выводится в координаты xy с середины, а объект с левого верхнего угла. И спрайт относительно объекта смещён выше и левее.

Мне так кажется. Так что надо теперь совместить прямоугольники в функции

getRect() return FloatRect (x-w\2, y-h\2,w,h)