#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. Я снова проверил свой код, и там было несколько глупых ошибок, которые я делал. Сейчас он работает нормально. Спасибо.