В принципе, я пытаюсь повернуть квадрат вокруг 2 очков одновременно.Вращение вокруг 2 точек в то же время
Здесь, когда мышь идет влево или вправо, я пытаюсь повернуть квадрат вокруг его центра, а когда мышь идет вверх или вниз, я вращаюсь вокруг любой другой точки (здесь 50: 100). Тем не менее, мой квадрат прыгает по экрану, и когда я пытаюсь вращаться только по центру, он продолжает вращаться вокруг 50: 100. Любые предложения, как это исправить?
#include <SFML/Graphics.hpp>
using namespace sf;
Event evt;
int main(int argc, char* argv)
{
RenderWindow window(VideoMode(600, 600), "test");
RectangleShape test(Vector2<float>(20.0f, 20.0f));
test.setFillColor(Color::Red);
test.setPosition(300, 300);
test.setOrigin(10, 10);
Clock deltaTime;
Clock timer;
timer.restart();
int mouseX = 0, mouseY = 0;
int curMouseX = 0, curMouseY = 0;
float offset = 100;
bool moving = false;
while (window.isOpen())
{
while (window.pollEvent(evt)) {
switch (evt.type)
{
case Event::MouseMoved:
curMouseX = mouseX;
curMouseY = mouseY;
mouseX = evt.mouseMove.x;
mouseY = evt.mouseMove.y;
moving = true;
break;
}
}
float elaspedTime = deltaTime.restart().asSeconds();
if (curMouseX != mouseX && moving) {
test.setOrigin(10, 10);
test.rotate(360 * elaspedTime);
// test.setOrigin(50, 100); Tried this to avoid jumping. When uncommented, doesn't rotate around the center.
}
if (curMouseY != mouseY && moving) {
test.setOrigin(50, 100);
test.rotate(60 * elaspedTime);
}
window.clear();
window.draw(test);
window.display();
moving = false;
}
return 0;
}
ли вы, хотите, чтобы ваш ремешок двигался непрерывно или только когда движется мышь? – Treycos