Есть такой код управления спрайтом:
if (sf::Keyboard::isKeyPressed(sf::Keyboard::W))
{
player.move(0, -Speed * time);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::S))
{
player.move(0, Speed * time);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::A))
{
player.rotate(-Speed * time);
}
if (sf::Keyboard::isKeyPressed(sf::Keyboard::D))
{
player.rotate(Speed * time);
}
Спрайт вращается вокруг своей оси, но кпонки w,s перемещают спрайт не так как надо. Как его перемещать в то направление куда он смотрит? Какие формулы применять? Чтоб было наподобие танков с видом сверху.
Вперед - вот так:
player.move(Speed * time * cos(угол), Speed * time * sin(угол));
Назад - аналогично, только с -Speed
вместо Speed
.
Здесь угол
- это тот угол, который меняется вызовом player.rotate
.
Использовать одну и ту же скорость Speed
для поворота и движения - слегка странно. Может иметь смысл использовать две отдельные константы.
Виртуальный выделенный сервер (VDS) становится отличным выбором
myDequeerase(min) выдает ошибку: cannot seek value-initialized deque iterator
Есть ли встроенные методы, позволяющие сравнить изображения на полное сходство (Не просто == или imgequals(img2), ибо в первом это разные объекты,...