Проще говоря, вам нужно изменить скорость мяча 'x', если достигнута x-граница, и 'y', если достигнута y-граница.
Учитывая отсутствие трения или ускорения и никаких других факторов, влияющих на скорость. Допустим, мяч движется на 60 градусов вниз вправо и попадает в правую границу. Он должен двигаться ниже с той же скоростью «y», возвращаясь влево с той же скоростью «x». И когда он достигнет нижней границы, он все равно будет двигаться влево, возвращаясь к вершине с той же скоростью 'y'.
var posX = 0
var posY = 0
var velX = 5
var velY = 8
func moveBall(){
posX += velX
posY += velY
if collideOnXBoundary {
velX = -velX
}
if collideOnYBoundary {
velY = -velY
}
}
Вы можете создать целую физику для шара, используя эту скорость. Измените его значение, чтобы ускорить, используйте трение, чтобы замедлить движение, используйте ускорение, крутящий момент и т. Д. Для создания различных механизмов.