【发布时间】:2020-02-13 12:32:01
【问题描述】:
我正在制作一个围绕图形移动的机械臂,但是当我尝试用键盘旋转一个形状时,它会无限旋转:我希望它在按下右箭头时只旋转一次。我该如何解决这个问题?
Transform transform;
while (window.isOpen())
{
Event event;
while (window.pollEvent(event))
{
if (event.type == Event::Closed)
window.close();
}
if (event.type == Event::KeyPressed)
{
switch (event.key.code)
{
case Keyboard::Right:
ang += 1;
}
}
window.clear(Color::White);
window.draw(braccio, transform);
transform.rotate(ang, WIDTH / 2, HEIGHT / 2);
window.draw(assi);
window.display();
}
【问题讨论】:
-
大部分代码应该移动到
while (window.pollEvent(event))循环,所以它只在窗口接收到事件时执行。 -
也不行
-
将
ang初始化为0。将transform.rotate(ang, WIDTH / 2, HEIGHT / 2);移动到ang += 1;之后
标签: c++ events keyboard sfml shapes