INNER CODE UNIT · Python
ball_paddle_collision
metafy-social/python-scripts · scripts/Brick-Breaker-Python/main.py:118
def ball_paddle_collision(ball, paddle):
if not (ball.x <= paddle.x + paddle.width and ball.x >= paddle.x):
return
if not (ball.y + ball.radius >= paddle.y):
return
paddle_center = paddle.x + paddle.width/2
distance_to_center = ball.x - paddle_center
percent_width = distance_to_center / paddle.width
angle = percent_width * 90
angle_radians = math.radians(angle)
x_vel = math.sin(angle_radians) * ball.VEL
y_vel = math.cos(angle_radians) * ball.VEL * -1
ball.set_vel(x_vel, y_vel)