Скорее всего, ваши объекты немного «выходят за пределы», поэтому, когда вы поворачиваете их, они не выходят за пределы, прежде чем вы снова их развернете. Возможно, вы захотите изменить код, чтобы он был более понятным, когда все должно измениться;
var ballT = e.target
ballT.x += ballT.vx;
ballT.y += ballT.vy;
// Outside to the right and heading right - turn around
if ( ballT.x + ballT.width / 2 >= sWidth && ballT.vx > 0 )
ballT.vx = -ballT.vx;
// Outside to the left and heading left - turn around
if ( ballT.x - ballT.width / 2 <= 0 && ballT.vx < 0 )
ballT.vx = -ballT.vx;
// Outside at the bottom and heading down - turn around
if ( ballT.y + ballT.height / 2 >= sHeight && ballT.vy > 0 )
ballT.vy = -ballT.vy;
// Outside at the top and heading up - turn around
if ( ballT.y - ballT.height / 2 <= 0 && ballT.vy < 0 )
ballT.vy = -ballT.vy;