mam pytanie dotyczące rotacji w sfml.
#include <SFML/Graphics.hpp>
#include <cmath>
int main()
{
sf::RenderWindow window(sf::VideoMode(600, 400), "SFML works!",sf::Style::Fullscreen);
sf::Texture t;
t.loadFromFile("samochod.png");
sf::Sprite samochod(t);
samochod.setTextureRect(sf::IntRect(0,0,64,40));
samochod.setOrigin(32,40);
samochod.setPosition(200,300);
sf::Clock time;
while (window.isOpen())
{
double dt = time.restart().asSeconds();
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
if(sf::Keyboard::isKeyPressed(sf::Keyboard::Escape))
{
window.close();
}
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::W))
{
if(sf::Keyboard::isKeyPressed(sf::Keyboard::A))
{
samochod.rotate(-90*dt);
}
if(sf::Keyboard::isKeyPressed(sf::Keyboard::D))
{
samochod.rotate(90*dt);
}
double angle = samochod.getRotation()*0.0174532925;
double distance = 200*dt;
samochod.move(distance*cos(angle),distance*sin(angle));
}
window.draw(samochod);
window.display();
}
return 0;
}
zrobiłem program który symuluje ruch "samochodu"
w kodzie nie ma window.clear(); aby przedstawić wam z czym jest problem;
przez to że okno się nie czyści widać jakiej wielkości koła zatacza sprite.
Przy skręcaniu w lewo koło jest wyraźnie mniejsze niż przy skręcaniu w prawo. Może mi ktoś powiedzieć gdzie jest błąd, albo dlaczego tak się dzieje