У меня есть изображение космического корабля, который я хочу, чтобы повернуть, чтобы указать на позиции курсора мыши. Чтобы вычислить угол я должен повернуть я использую следующий код:Поворот объекта до точки на позиции мыши
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 секунд или около того, а затем не указывает на правильность мыши. Что-то не так с моим кодом? Прокомментируйте, если вам нужно больше кода, я не уверен, сколько информации вам нужно.
о мой, как я мог не заметить, что ... большое спасибо :) –