Как я могу повернуть объект квадратной формы с помощью указателя мыши в sfml?

#c #graphics #sfml

Вопрос:

Я новичок в использовании SFML, и мне было интересно, может ли кто-нибудь сказать мне, как повернуть объект в центре с помощью указателя мыши.

Например, если я нажму right кнопку, она должна вращаться в тактовом направлении, а если я нажму left кнопку, она должна вращаться против часовой стрелки.

Ответ №1:

Это то, что вы ищете? Если вам нужно дополнительное объяснение, запишите его.

 sf::RectangleShape shape;
shape.setSize({100.0f, 100.0f});

// Set origin point in the center of the object, to rotate it around the center
shape.setOrigin({shape.getSize().x / 2, shape.getSize().y / 2});

// Angle value you'll rotate the shape by
float angle = 1.0f;

// Inside the game loop
if (sf::Mouse::isButtonPressed(sf::Mouse::Button::Right)) shape.rotate(angle);
if (sf::Mouse::isButtonPressed(sf::Mouse::Button::Left))  shape.rotate(-angle);
 

Комментарии:

1. Я сделал то же самое…Извините, я должен был написать код в вопросе. Но происходит то, что он принимает только одну команду-либо правую кнопку, либо левую.

2. Разве не так это должно работать? Вы не можете вращать вещь в двух направлениях одновременно.

3. Я снова проверил свой код, и там было несколько глупых ошибок, которые я делал. Сейчас он работает нормально. Спасибо.