@Sour_Lemon

Как проверить наличие курсора мышки в определённой области окна(SFML)?

Есть прямоугольник (rectangle), и нужно отследить нажатие мышки именно в области этого прямоугольника. Уже, наверное, всё перепробовал, но ничто не помогает. Вот код для наглядности.
#include <SFML/Graphics.hpp>

int main() {

	sf::RenderWindow window(sf::VideoMode(1280, 720), "SFML");

	window.setFramerateLimit(60);

	sf::RectangleShape rectangle;        //собственно сам прямоугольник
	rectangle.setSize(sf::Vector2f(400.f, 25.f));
	rectangle.setOutlineThickness(2.5f);
	rectangle.setOutlineColor(sf::Color::White);
	rectangle.setPosition(sf::Vector2f(320.f, 200.f));

	while (window.isOpen()) {
		
		sf::Event event;

		while (window.pollEvent(event)) {

			if (event.type == sf::Event::Closed)
				window.close();
			
			if (event.type == sf::Event::MouseButtonPressed) {
				if (rectangle.getGlobalBounds().contains(sf::Mouse::getPosition().x, sf::Mouse::getPosition().y)) {
					rectangle.setOutlineColor(sf::Color::Red);  //если нажатие произошло в области прямоугольника, 
				}                                                                         //то изменить цвет границы
			}
		}
		window.clear(sf::Color::Black);

		window.draw(rectangle);
		
		window.display();
	}
	return 0;
}
  • Вопрос задан
  • 1057 просмотров
Решения вопроса 1
maaGames
@maaGames
Погроммирую программы
https://www.sfml-dev.org/documentation/2.5.1/class...

getPosition ()
Get the current position of the mouse in desktop coordinates.

getPosition (const Window &relativeTo)
Get the current position of the mouse in window coordinates.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы