@vasiliyshaidiuk

Как исправить проблему с поворотом спрайта?

Здравствуйте. Пожалуйста, подскажите решение проблемы поворота спрайта на экране.. Есть подобный код в двух файлах:
.h файл: https://github.com/Debug-/samp-omega/blob/master/C...
.cpp файл: https://github.com/Debug-/samp-omega/blob/master/C...

Суть в том, что при изменении rotation (здесь: https://github.com/Debug-/samp-omega/blob/master/C... сам угол поворота как бы и не меняется.

Думаю при изменении нужно вновь рассчитывать расположение спрайта на экране, поэтому перед функцией Draw (https://github.com/Debug-/samp-omega/blob/master/C... добавил SetTransformation (https://github.com/Debug-/samp-omega/blob/master/C... но безрезультатно(

Какое решение проблемы может быть? Огромное спасибо тому кто поможет.
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
includedlibrary
@includedlibrary
У вас в методе Sprite::SetTransformation обновляется матрица, но вы не применяете её к вашему спрайту. Скорее всего нужно сделать так.
void Sprite::SetTransformation()
{
    D3DXVECTOR2 spriteCenter = center;
    D3DXVECTOR2 trans = pos;
    D3DXVECTOR2 scaling = scale;
    D3DXMatrixTransformation2D(&mat, NULL, 0.0, &scaling, &spriteCenter, rotation, &trans);
    sprite->SetTransform(&mat);
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы