Merge branch 'main' of codeberg.org:adrien-lsh/ft_transcendence
This commit is contained in:
commit
efd8d53f6c
@ -11,16 +11,16 @@
|
|||||||
<body data-bs-theme='dark'>
|
<body data-bs-theme='dark'>
|
||||||
<nav class='navbar navbar-expand-md bg-body-tertiary rounded border border-dark-subtle m-2'>
|
<nav class='navbar navbar-expand-md bg-body-tertiary rounded border border-dark-subtle m-2'>
|
||||||
<div class='container-fluid'>
|
<div class='container-fluid'>
|
||||||
<span class='navbar-brand'>Bozo Pong</span>
|
|
||||||
<button class='navbar-toggler' type='button' data-bs-toggle='collapse' data-bs-target='#navbarSupportedContent'>
|
<button class='navbar-toggler' type='button' data-bs-toggle='collapse' data-bs-target='#navbarSupportedContent'>
|
||||||
<span class='navbar-toggler-icon'></span>
|
<span class='navbar-toggler-icon'></span>
|
||||||
</button>
|
</button>
|
||||||
<div class='collapse navbar-collapse' id='navbarSupportedContent'>
|
<div class='collapse navbar-collapse justify-content-between' id='navbarSupportedContent'>
|
||||||
<div class='navbar-nav me-auto'>
|
<div class='navbar-nav'>
|
||||||
<a class='nav-link' href='/' data-i18n='navbarDashboard' data-link>Dashboard</a>
|
<a class='nav-link' href='/' data-i18n='navbarDashboard' data-link>Dashboard</a>
|
||||||
<a class='nav-link' href='/search' data-i18n='navbarSearch' data-link>Search</a>
|
<a class='nav-link' href='/search' data-i18n='navbarSearch' data-link>Search</a>
|
||||||
<a class='nav-link' href='/home' data-i18n='navbarHome' data-link>Home</a>
|
<a class='nav-link' href='/home' data-i18n='navbarHome' data-link>Home</a>
|
||||||
</div>
|
</div>
|
||||||
|
<span class='navbar-brand'>Bozo Pong</span>
|
||||||
<div class='navbar-nav'>
|
<div class='navbar-nav'>
|
||||||
<div class='dropdown-center'>
|
<div class='dropdown-center'>
|
||||||
<a class='nav-link dropdown-toggle' id='languageDisplay' role='button' data-bs-toggle='dropdown'>
|
<a class='nav-link dropdown-toggle' id='languageDisplay' role='button' data-bs-toggle='dropdown'>
|
||||||
|
@ -11,6 +11,7 @@ MAP_CENTER_Y = MAP_SIZE_Y / 2
|
|||||||
|
|
||||||
WALL_RATIO = 1
|
WALL_RATIO = 1
|
||||||
|
|
||||||
|
BALL_SPEED_MAX = 550
|
||||||
BALL_SPEED_INC = 50
|
BALL_SPEED_INC = 50
|
||||||
BALL_SPEED_START = 170
|
BALL_SPEED_START = 170
|
||||||
BALL_SIZE = 4
|
BALL_SIZE = 4
|
||||||
|
@ -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:
|
||||||
@ -274,7 +274,7 @@ async def update_ball(game: PongGame, impact_data: dict):
|
|||||||
await asyncio.sleep(0.1) # create frontend animation
|
await asyncio.sleep(0.1) # create frontend animation
|
||||||
await SyncToAsync(game.goal)(ret)
|
await SyncToAsync(game.goal)(ret)
|
||||||
else:
|
else:
|
||||||
game.ball.speed += config.BALL_SPEED_INC
|
game.ball.speed = min(game.ball.speed + config.BALL_SPEED_INC, config.BALL_SPEED_MAX)
|
||||||
game.ball.position.location = impact_data.get("impact")
|
game.ball.position.location = impact_data.get("impact")
|
||||||
#game.ball.position.time = time.time() * 1000
|
#game.ball.position.time = time.time() * 1000
|
||||||
game.ball.angle = ret
|
game.ball.angle = ret
|
||||||
|
Loading…
Reference in New Issue
Block a user