From 08c4ba7f5aa07db27341cbd056d6482376191d2a Mon Sep 17 00:00:00 2001 From: Cameron Katri Date: Sat, 12 Jun 2021 21:25:59 -0400 Subject: Add non working time shooting --- Assets/Scripts/Controllers/AIController.cs | 2 +- Assets/Scripts/Controllers/Ball.cs | 4 ++-- Assets/Scripts/Controllers/GameController.cs | 5 +++-- Assets/Scripts/Controllers/Player/PlayerController.cs | 7 ++++++- 4 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Assets/Scripts/Controllers/AIController.cs b/Assets/Scripts/Controllers/AIController.cs index 4879c4c..bd5fee1 100644 --- a/Assets/Scripts/Controllers/AIController.cs +++ b/Assets/Scripts/Controllers/AIController.cs @@ -55,7 +55,7 @@ namespace Controllers var playerHoopDistance = Mathf.Abs(player.root.transform.position.x - game.EnemyHoop.transform.position.x); if (hoopDistance < 6f && hoopDistance > 2.5f && (Random.Range(0, 100) > 30 || playerHoopDistance > hoopDistance)) // Take the shot when in range. 70% chance he decides to if the player is standing between him and the basket. { - game.enemy.Shoot(transform); + game.enemy.Shoot(transform, 0f); } } diff --git a/Assets/Scripts/Controllers/Ball.cs b/Assets/Scripts/Controllers/Ball.cs index 07e1b37..936b857 100644 --- a/Assets/Scripts/Controllers/Ball.cs +++ b/Assets/Scripts/Controllers/Ball.cs @@ -20,11 +20,11 @@ namespace Controllers controller.BallDropped(); } - public void Shoot(Vector3 target) + public void Shoot(Vector3 target, float time) { transform.right = target - transform.position; Rigidbody.velocity = Vector2.zero; - Rigidbody.AddForce((transform.right + (transform.up * 0.5f)) * shotForce); + Rigidbody.AddForce((transform.right + (transform.up * 0.5f)) * (shotForce * ((Mathf.Clamp(time, 0f, 1f) + 1)))); } } } diff --git a/Assets/Scripts/Controllers/GameController.cs b/Assets/Scripts/Controllers/GameController.cs index 3260fb2..775875a 100644 --- a/Assets/Scripts/Controllers/GameController.cs +++ b/Assets/Scripts/Controllers/GameController.cs @@ -125,15 +125,16 @@ namespace Controllers /// Shoot the ball if possible. /// /// + /// /// Whether or not the ball was shot - public bool Shoot(Transform playerTransform) + public bool Shoot(Transform playerTransform, float time) { if (controller.state != dribble) return false; // We must be dribbling the ball to shoot it. controller.BallAnimation.enabled = true; controller.dribbleSound.Stop(); controller.state = shoot; controller.ball.Rigidbody.bodyType = RigidbodyType2D.Dynamic; - controller.ball.Shoot(hoop.transform.position); + controller.ball.Shoot(hoop.transform.position, time); lastShotPosition = playerTransform.position; return true; } diff --git a/Assets/Scripts/Controllers/Player/PlayerController.cs b/Assets/Scripts/Controllers/Player/PlayerController.cs index 8aa0f25..1360b6c 100644 --- a/Assets/Scripts/Controllers/Player/PlayerController.cs +++ b/Assets/Scripts/Controllers/Player/PlayerController.cs @@ -21,6 +21,8 @@ namespace Controllers.Player public PlayerSegment root => segments[0]; + private float ShootStartTime; + private void Awake() { foreach (var segment in segments) { @@ -98,7 +100,10 @@ namespace Controllers.Player // Try shooting the ball if pressed. if (Input.GetKeyDown(controls.shoot)) - game.player.Shoot(segments.Last().transform); + ShootStartTime = Time.time; + + if (Input.GetKeyUp(controls.shoot)) + game.player.Shoot(segments.Last().transform, ShootStartTime - Time.time); } [Serializable] -- cgit v1.2.3-56-ge451