Ну, у вас есть некоторые подсказки в коде, который вы предоставляете. То, как вы определяете, отскакивает ли мяч от стены, состоит в том, чтобы проверить, не превышает ли верхняя граница шара меньше 0, что означает, что он коснулся верхней границы и должен отскочить, чтобы вы изменили направление.
Итак, код:
if ball_boundary_1.top < 0 or ball_boundary_1.bottom > top:
sound.play()
velocity1[1] = -velocity1[1]
в основном меняется на вертикальное движение мяча, если он подпрыгивает на полу или потолке.
Итак, чтобы изменить это, вам нужно спросить себя, что это значит, если два шара подпрыгивают друг на друга ... и это будет означать, что их границы перекрываются любым из множества способов. Так, например, вы можете проверить, находится ли левый или правый шарик 1 внутри горизонтальных размеров шарика 2, а верх или низ шарика 1 находится внутри вертикальных размеров шарика 2, тогда два шарика соприкасаются, поэтому измените скорость обоих шары.