Текстовые эффекты при наведении

Я пытаюсь создать простой эффект наведения мыши (или зависания) при обработке. Мне удалось сделать этот эффект только на фигурах, таких как прямоугольники, эллипсы и т. Д., Но я не могу понять, как это сделать на текстовых объектах.

Например, чтобы обнаружить наведение мыши по кругу:

if (sqrt(sq(x - mouseX) + sq(y - mouseX)) < diameter/2 ) {
    return true;
} else {
    return false;
}

Эффект будет таким же простым, как изменение цвета текста, чтобы указать, что мышь находится над текстом.

Любая помощь приветствуется, спасибо!

1 ответ

Решение

Используйте ограничивающий прямоугольник, который представляет собой просто прямоугольник, который "нарисован" вокруг текста. (Этот прямоугольник обычно не рисуется, за исключением отладки.)

Вы можете получить ограничивающую рамку текста, используя textWidth() Функция и ее друзья, о которых вы можете прочитать в ссылке.

Затем, когда у вас есть этот ограничивающий прямоугольник, вы можете использовать код обнаружения столкновения для прямоугольников, которые у вас уже есть.

В будущем, пожалуйста, попробуйте опубликовать MCVE вместо публикации отключенного фрагмента.

Другие вопросы по тегам