C++ 围绕另一个对象旋转的对象不断加速
好的,我对编程还是新手,我一直在尝试处理场景图,每当我旋转一个对象时,它的子对象都会围绕它加速,而我只想让它们以与父对象(父对象)旋转相同的速度围绕父对象旋转 这就是它们旋转的原因C++ 围绕另一个对象旋转的对象不断加速,c++,rotation,sfml,C++,Rotation,Sfml,好的,我对编程还是新手,我一直在尝试处理场景图,每当我旋转一个对象时,它的子对象都会围绕它加速,而我只想让它们以与父对象(父对象)旋转相同的速度围绕父对象旋转 这就是它们旋转的原因 if (sf::Keyboard::isKeyPressed(sf::Keyboard::Q) == true) { if (Entity != nullptr) { Entity->theSprite.rotate(-10); if (Entity->isParent =
if (sf::Keyboard::isKeyPressed(sf::Keyboard::Q) == true)
{
if (Entity != nullptr)
{
Entity->theSprite.rotate(-10);
if (Entity->isParent == true)
{
for (int i = 0; i < Entity->listofChildren.size(); i++)
{
Entity->listofChildren.at(i)->theSprite.rotate(-10);
Entity->listofChildren.at(i)->theSprite.setPosition(rotateAround(Entity, Entity->listofChildren.at(i)));
}
}
}
}
我一直在试图弄清楚为什么会发生这种情况,我的猜测是,它只是不断累积每一帧,但我不知道如何使其停止:(问题是,您首先在
Entity->theSprite.rotate(-10);
然后稍后使用父对象的旋转来确定子对象的旋转角度
float angle = toRotateAround->theSprite.getRotation() * (_PI / 180);
让我们看一下程序计算的内容:
rotateAround
float angle = toRotateAround->theSprite.getRotation() * (_PI / 180);