Приветствую. Пользовался ли кто этой библиотекой?
У меня там есть 2д корпус танка, на ней башня танка.
Когда я поворачиваю корпус танка или башню, то меняя переменную угол.
И отображается всё как надо. Функция DrawTexturePro позволяет учесть и origin и угол.
Но проблема в том, что эта функция как бы визуально имитирует поворот в момент отрисовки.
Rectangle не поворачивается. Как бы визуальный обман. И это скажется при поиске коллизий и т.д.
DrawTexturePro(player.getTexture(),
(Rectangle){0.0f, 0.0f, 64, 104},
(Rectangle){player.getRect().x, player.getRect().y, 64, 104},
Vector2{player.getRect().width / 2, player.getRect().height - 10}, player.getAngle(), WHITE);
Ну и башня схоже.
В update корпуса что-то типа такого.
float pos_x = (this->coordX + 32) - (sin(this->angle * this->mRad));
float pos_y = (this->coordY + 190) - (cos(this->angle * this->mRad));
float DX = (pos_x - (this->coordX + 32));
float DY = (pos_y - (this->coordY + 190));
if (IsKeyDown(KEY_RIGHT)){
this->angle += 1;
}
if (IsKeyDown(KEY_RIGHT)){
this->angle += 1;
}
if (IsKeyDown(KEY_LEFT)){
this->angle -= 1; //GetFrameTime() * 100 ;
}
if (IsKeyDown(KEY_UP)){
// ВОТ ТУТ
this->speed += 0.0001;
//this->coordY += this->speed;//GetFrameTime() * 100 ;
this->coordX += (DX );
this->coordY += (DY );
}
if (IsKeyDown(KEY_DOWN)){
this->speed += 0.0001;
//this->coordY -= this->speed;//GetFrameTime() * 100 ;
this->coordX -= (DX * this->speed);
this->coordY -= (DY * this->speed);
}
this->rect.x = this->coordX + this->getRect().width;
this->rect.y = this->coordY + this->getRect().height;
Ну и в таком русле я всё это экспериментирую, башня схоже. Только так координаты подвязаны на координаты корпуса.
Короче говоря, в итоге текстуры поворачиваются, а Rectangle остаётся на месте. В итоге нарушаются все расчёты, не говоря уж о будущих коллизиях.