Перемещение мяча в SFML

Я делаю игру в пинг-понг с использованием SFML, а мяч — это квадрат. Я посмотрел учебники и по какой-то причине не могу заставить свой мяч двигаться. Я использовал операторы cout для проверки положения мяча, но он просто выводит исходную позицию. Я подозреваю, что с моей математикой что-то не так … но мяч должен двигаться.

void ball_traits(sf::RectangleShape ball, sf::RectangleShape leftPaddle)
{
double ballSpeed = 5;
int angle = 90;

//Scale X and Y will give the angle
double scaleX = cos(angle);
std::cout << scaleX << std::endl;
double scaleY = sin(angle);
double velocityX = scaleX * ballSpeed;
double velocityY = scaleY * ballSpeed;
//take original position
double moveX = ball.getPosition().x;
double moveY = ball.getPosition().y;

sf::Clock clock;
double elapsed = clock.restart().asSeconds();

moveX += velocityX  * elapsed;
moveY += velocityY * elapsed;
std::cout << moveX << std::endl;
std::cout << moveY << std::endl;
ball.move(moveX,  moveY);
}

Я просто хочу, чтобы меня подтолкнули в правильном направлении. Это моя первая игра, и мои навыки с ++ немного ржавые.
[Обновление] Я забыл передать объект по ссылке (лицо ладонью).

0

Решение

Я думаю, что прошедшее время очень близко к нулю. Это ноль. Да.
Вы должны объявить часы как глобальную переменную.

И вы должны использовать радиан для функций sin и cos.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]