Попадание мыши, коллизии для спрайта с прозрачным фоном

SFML и C++ Уроки \ Разработка игр Форумы SFML Graphics Попадание мыши, коллизии для спрайта с прозрачным фоном

В этой теме 2 ответа, 2 участника, последнее обновление VladimirL VladimirL 7 года/лет, 8 мес. назад.

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)
  • Автор
    Сообщения
  • #4096
    VladimirL
    VladimirL
    Участник
    Сообщений:4

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

    Репутация:3

    Добрый день!

    У меня есть спрайты с прозрачным фоном.

    Хотелось бы, что бы реакция на клик мышью в спрайт срабатывала только если кликнули не в прозрачный пиксел.

    Аналогично с определением касания спрайтов.

    Есть готовые решения?

    Я представляю себе как это реализовать (рассчитывать маску по image и  преобразованию спрайта или переводить координаты мыши в image).

    Если готовых решений не будет – попробую что-нибудь реализовать, отпишусь.

    Спасибо.

     

    #4097
    Heisenberg
    Heisenberg
    Участник
    Сообщений:320

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

    Репутация:146

    Да у image есть метод getPixel() который возвращает цвет указанного пикселя.
    Примерно такой код, не тестировал, написал на скорую руку.

    #4131
    VladimirL
    VladimirL
    Участник
    Сообщений:4

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

    Репутация:3

    Для того, чтобы вызывать image.getPixel, надо перевести точку из координат экрана в координаты этого image.

    Я написал такую функцию:

    https://kychka-pc.ru/Forum/sfml-topic/proverka-popal-li-klik-myshi-v-sprajt-s-prozrachnym-fonom

    Коллизии сплайнов  в другой раз напишу (перебор пикселов из пересечения прямоугольников, проверка оба ли  видны).

    Удачи!

     

Просмотр 3 сообщений - с 1 по 3 (из 3 всего)

Для ответа в этой теме необходимо авторизоваться.