Я думаю, вам понадобятся три вещи для этого: силы (x и y, которые у вас есть), скорости (назовите их xVel и yVel) и позиции (xPos и yPos, которые у вас также есть).Положение мяча обновляется (самым простым способом) следующим образом:
xPos += dt*xVel;
yPos += dt*yVel;
xVel += dt*x;
yVel += dt*y;
Переменная 'dt' является временным шагом , который управляет скоростью перемещения мяча.Однако, если он установлен слишком большим, программа будет нестабильной!Попробуйте dt = 0.001 или около того, чтобы начать и постепенно увеличивать его.
Затем, чтобы шар отразился от стен, просто измените скорость, если он ударяет о стену:
if (xPos > xMax) {
xPos = xMax;
xVel *= -1.0;
} else if (xPos < 0.0) {
xPos = 0.0;
xVel *= -1.0;
}
и то же самое для y.«XPos = ...» просто для того, чтобы остановить движение мяча от края экрана.Если вы хотите, чтобы мяч каждый раз слегка ударялся о стену, измените «-1,0» на «-0,9» или что-то еще (это коэффициент восстановления ).
Надеюсь, это все.Удачи!