From 15b7271ee1a55655aa062f94fc5802e3c8357504 Mon Sep 17 00:00:00 2001 From: Benjamin Kraft Date: Sun, 9 Apr 2023 08:11:07 +0200 Subject: [PATCH] rotated top player --- Assets/Scripts/Game/AIPlayer.cs | 5 +++-- Assets/Scripts/Game/Player.cs | 9 ++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/Assets/Scripts/Game/AIPlayer.cs b/Assets/Scripts/Game/AIPlayer.cs index 0f3435b..8c68ff9 100644 --- a/Assets/Scripts/Game/AIPlayer.cs +++ b/Assets/Scripts/Game/AIPlayer.cs @@ -70,7 +70,8 @@ namespace Game { // TODO solution for balls outside of border // TODO Also must include fact that players have a height, maybe check the incoming angle - private bool IsPositionReachableInTime(float futurePosition, float seconds) { + // angle: 0 -> perpendicular, from -90 to 90 + private bool IsPositionReachableInTime(float futurePosition, float seconds, float angle) { float requiredDistance = Mathf.Abs(futurePosition - X()) - Width / 2; if (requiredDistance < 0) return true; @@ -97,7 +98,7 @@ namespace Game { // Horizontal line (player line) -> stop simulating if (Intersect(origin, end, playerLeft, playerRight, out Vector2 point, out Vector2 rs)) { secondsUsed += secondsLeft * rs.x; - if (!IsPositionReachableInTime(point.x, secondsUsed)) + if (!IsPositionReachableInTime(point.x, secondsUsed, Vector2.Angle(velocity, transform.up))) impossible = true; return point.x; } diff --git a/Assets/Scripts/Game/Player.cs b/Assets/Scripts/Game/Player.cs index 0538915..cacc3c3 100644 --- a/Assets/Scripts/Game/Player.cs +++ b/Assets/Scripts/Game/Player.cs @@ -38,15 +38,15 @@ namespace Game { protected void ClampInsideBorders() { if (LeftSide < -Border) - transform.Translate(Vector2.right * (-Border - LeftSide)); + transform.Translate(Vector2.right * (-Border - LeftSide), Space.World); if (RightSide > Border) - transform.Translate(Vector2.left * (RightSide - Border)); + transform.Translate(Vector2.left * (RightSide - Border), Space.World); } protected void TryLinearMove(float h) { Vector2 trans = new Vector2((goingLeft ? -1 : 0) + (goingRight ? 1 : 0), 0); trans *= Speed * h; - transform.Translate(trans); + transform.Translate(trans, Space.World); ClampInsideBorders(); } @@ -57,6 +57,9 @@ namespace Game { _ => throw new ArgumentOutOfRangeException() }; transform.position = new Vector2(0, y); + if (Side == ESide.Top) { + transform.Rotate(transform.forward, 180); + } } }