pong online: fix: y axe paddle collision
This commit is contained in:
parent
96c99a6f2d
commit
f60b85a1bd
@ -126,7 +126,6 @@ def get_impact_point(segment: Segment, ball_segment: Segment) -> Point | None:
|
|||||||
|
|
||||||
return impact
|
return impact
|
||||||
|
|
||||||
|
|
||||||
def get_first_impact(segments: list[Segment], ball: Ball):
|
def get_first_impact(segments: list[Segment], ball: Ball):
|
||||||
|
|
||||||
cos: float = round(math.cos(ball.angle), 6)
|
cos: float = round(math.cos(ball.angle), 6)
|
||||||
@ -215,6 +214,7 @@ def paddle_collision(impact: Point, player: PongPlayer, inc_x: float, inc_y: flo
|
|||||||
paddle_angle: float = paddle.angle()
|
paddle_angle: float = paddle.angle()
|
||||||
|
|
||||||
normal: float = paddle_angle - math.pi / 2
|
normal: float = paddle_angle - math.pi / 2
|
||||||
|
normal: float = math.atan2(math.sin(normal) * -1, math.cos(normal))
|
||||||
|
|
||||||
start_distance: float = paddle.start.distance(impact)
|
start_distance: float = paddle.start.distance(impact)
|
||||||
stop_distance: float = paddle.stop.distance(impact)
|
stop_distance: float = paddle.stop.distance(impact)
|
||||||
@ -224,7 +224,7 @@ def paddle_collision(impact: Point, player: PongPlayer, inc_x: float, inc_y: flo
|
|||||||
hit_percent = round(hit_percent, 1)
|
hit_percent = round(hit_percent, 1)
|
||||||
|
|
||||||
new_angle: float = normal + (math.pi * 0.85) * (hit_percent - 0.5)
|
new_angle: float = normal + (math.pi * 0.85) * (hit_percent - 0.5)
|
||||||
|
|
||||||
return new_angle
|
return new_angle
|
||||||
|
|
||||||
def wall_collision(ball_angle: float, wall: Segment) -> float:
|
def wall_collision(ball_angle: float, wall: Segment) -> float:
|
||||||
|
Loading…
Reference in New Issue
Block a user