我有一个宇宙飞船的图像,我想旋转它以指向鼠标位置。要计算我必须旋转的角度,我使用以下代码:
void CinderGaemApp::CalculateAngleBetweenMouseAndObject()
{
float deltaY = mouseLoc_.y - 10; //hardcoded y coordinate of the tip of the spaceship
float deltaX = mouseLoc_.x - 0; //hardcoded x coordinate of the tip of the spaceship
angleInDegrees_ = atan2(deltaY,deltaX) * 180 / 3.141;
}
之后我更新我的播放器对象:
void Player::update(float degree)
{
gl::pushMatrices();
gl::translate(20,20);
gl::rotate(degree);
gl::translate(-20,-20);
gl::popMatrices();
}
然后我画出来。但我的问题是,当我使用 时gl::popMatrices()
,图像根本没有移动。如果我删除gl::popMatrices()
,图像首先旋转 2 秒左右,然后没有正确指向鼠标。我的代码有什么问题吗?如果您需要更多代码,请发表评论,我不确定您需要多少信息。