Прямо сейчас эта строка
transform.rotate(ang, WIDTH / 2, HEIGHT / 2);
вызывается в каждом кадре вашей программы, потому что он находится в основном цикле, который работает постоянно . Если вы хотите, чтобы это происходило только тогда, когда ваша игра обнаруживает какой-либо ввод, поместите его в опрос событий, например:
while (window.pollEvent(event))
{
// Do your event handling in here, input, etc.
if (event.type == Event::Closed)
window.close();
// This event case should also be inside here.
if (event.type == Event::KeyPressed)
{
switch (event.key.code)
{
case Keyboard::Right:
ang += 1;
transform.rotate(ang, WIDTH / 2, HEIGHT / 2);
break;
}
}
}
В противном случае ваша рука будет продолжать вращаться бесконечно.
РЕДАКТИРОВАТЬ:Спасибо @alseether за указание на то, что функция Transform::rotate
добавляет угол к текущему повороту фигуры. Так что приращение ang
каждый раз будет постепенно вращать фигуру все быстрее и быстрее ... Если вы не хотите, чтобы это происходило, просто установите ang
на постоянное значение, и куб будет вращаться с постоянной скоростью.