From 14dbaa347aa2ffa335796ee90731eff2e1954a3e Mon Sep 17 00:00:00 2001 From: Tanner Grehawick Date: Tue, 7 Mar 2017 21:24:22 -0500 Subject: [PATCH] working CollisionStateRefactor --- Assets/Scenes/CharacterTest.unity | Bin 101188 -> 101252 bytes Assets/Scripts/Player/CollisionState.cs | 41 ++-- Assets/Scripts/Player/Walk.cs | 260 ++++++++++++------------ 3 files changed, 153 insertions(+), 148 deletions(-) mode change 100644 => 100755 Assets/Scenes/CharacterTest.unity diff --git a/Assets/Scenes/CharacterTest.unity b/Assets/Scenes/CharacterTest.unity old mode 100644 new mode 100755 index 086a96f40b91348c14e4cf3cc566027a68731761..717dc0960a4f3e84d31c4062a013853b08052924 GIT binary patch literal 101252 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 XZ zC{c>hKTdP*n)@~1<$t8A?Q`mV2ihF?9WSVVJnET`n8TYraA6!DYp^i(`)kjr^S$!r zkH61h+UL)S9&brQ zt}U!%Uzqz|SjW7u_G?;P`rbc&oRs}9oa6tq9WT|Ewk|!h>@m|E|A*)1+`+xHvl zJANg2+;$z;Jxbay94&&lmpN5jM{hi}+eSCm^S>ES&9VR4_6yOFOMi45x1%*<&MWK# zTt5(V*75(KjsL*?@-W&SQ+#lW8@sl)|LyUceJz}RhUZd$bezfY`Wi2&bEXC5r_|OG z^Wm%QlW_=PJcP&g-)$|NcKPG`9Z_lF9543%zvsmvLfbfIdvM|SZOX!l4L)BX`)55D rMx4lfUtYsy?k}i*WcnYl$uRMmHQR5fEz6h%u$ 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 diff --git a/Assets/Scripts/Player/CollisionState.cs b/Assets/Scripts/Player/CollisionState.cs index b85a9f3..65d5537 100644 --- a/Assets/Scripts/Player/CollisionState.cs +++ b/Assets/Scripts/Player/CollisionState.cs @@ -33,32 +33,37 @@ public class CollisionState : MonoBehaviour { enemyHit = Physics2D.OverlapCircle(body.position + bottomPosition, collisionRadius, enemyLayer); } - void OnDrawGizmosSelected() { - Gizmos.color = Color.red; + // void OnDrawGizmosSelected() { + // Gizmos.color = Color.red; - Vector2 pos = bottomPosition; - pos.x += transform.position.x; - pos.y += transform.position.y; + // Vector2 pos = bottomPosition; + // pos.x += transform.position.x; + // pos.y += transform.position.y; - Gizmos.DrawWireSphere(pos, collisionRadius); + // Gizmos.DrawWireSphere(pos, collisionRadius); - pos = rightPosition; - pos.x += transform.position.x; - pos.y += transform.position.y; + // pos = rightPosition; + // pos.x += transform.position.x; + // pos.y += transform.position.y; - Gizmos.DrawWireSphere(pos, collisionRadius); + // Gizmos.DrawWireSphere(pos, collisionRadius); - pos = leftPosition; - pos.x += transform.position.x; - pos.y += transform.position.y; + // pos = leftPosition; + // pos.x += transform.position.x; + // pos.y += transform.position.y; - Gizmos.DrawWireSphere(pos, collisionRadius); - } + // Gizmos.DrawWireSphere(pos, collisionRadius); + // } + + float lastFixedTime; void OnCollisionStay2D(Collision2D collision) { - onGround = false; - onWallLeft = false; - onWallRight = false; + if (Time.fixedTime != lastFixedTime) { + onGround = false; + onWallLeft = false; + onWallRight = false; + lastFixedTime = Time.fixedTime; + } foreach (ContactPoint2D contact in collision.contacts) { Color color = Color.white; Vector2 normal = contact.normal; diff --git a/Assets/Scripts/Player/Walk.cs b/Assets/Scripts/Player/Walk.cs index 48e169d..afef2c5 100644 --- a/Assets/Scripts/Player/Walk.cs +++ b/Assets/Scripts/Player/Walk.cs @@ -3,135 +3,135 @@ using System.Collections.Generic; using UnityEngine; public class Walk : AbstractBehavior { - public float speed; - private float airSpeed; - public float airAcceleration; - public float friction; - public float wallClingTime; //time you will 'stick' to the wall after pressing the opposite direction - public float clingSpeed = 0.1f; - - public float realSpeed; - public bool wallSliding = false; - - private int rightInt = 0; - private int leftInt = 0; - - private float rightTime = 0; - private float leftTime = 0; - - // Use this for initialization - void Start() { - } - - // Update is called once per frame - void Update() { - Buttons left = inputButtons[0]; - Buttons right = inputButtons[1]; - - rightInt = 0; - leftInt = 0; - - - if (inputState.GetButtonValue(right)) - rightInt = 1; - else - rightInt = 0; - - if (inputState.GetButtonValue(left)) - leftInt = -1; - else - leftInt = 0; - - wallSliding = false; - - if (collisionState.onGround) //movement on ground - { - - realSpeed = body.velocity.x; - if (inputState.GetButtonValue(right) || inputState.GetButtonValue(left)) - { - - realSpeed = Mathf.Clamp(realSpeed + speed * (rightInt + leftInt), -speed, speed); - } - else - { - if (realSpeed != 0) - { - realSpeed += (-1) * Mathf.Sign(realSpeed) * friction; - if (Mathf.Abs(realSpeed) < friction) - realSpeed = 0; - } - } - body.velocity = new Vector2(realSpeed, body.velocity.y); - } else if (!collisionState.onWall || body.velocity.y > 0) //in air and not sliding - { - - wallSliding = false; - - airSpeed = body.velocity.x; - if (inputState.GetButtonValue(right) || inputState.GetButtonValue(left)) - { - if(Mathf.Abs(airSpeed) <= speed) - airSpeed = Mathf.Clamp(airSpeed + airAcceleration * (rightInt + leftInt), -speed, speed); - else - { - if (airSpeed != 0) - { - airSpeed += (-1) * Mathf.Sign(airSpeed) * airAcceleration; - if (Mathf.Abs(airSpeed) < airAcceleration) - airSpeed = 0; - } - } - } - /*else //air deceleration while pressing nothing, I don't like this - may be removed - { - if (airSpeed != 0) - { - airSpeed += (-1) * Mathf.Sign(airSpeed) * airAcceleration; - if (Mathf.Abs(airSpeed) < airAcceleration) - airSpeed = 0; - } - }*/ - body.velocity = new Vector2(airSpeed, body.velocity.y); - } else //handles wall sliding - { - wallSliding = true; - rightTime = inputState.GetButtonHoldTime(right); - leftTime = inputState.GetButtonHoldTime(left); - - airSpeed = body.velocity.x; - - //only sets a change if the button has been held for a set time - if (rightTime >= wallClingTime) - { - wallSliding = false; - airSpeed = Mathf.Clamp(airSpeed + airAcceleration * (rightInt + leftInt), -speed, speed); - } - if (leftTime >= wallClingTime) - { - wallSliding = false; - airSpeed = Mathf.Clamp(airSpeed + airAcceleration * (rightInt + leftInt), -speed, speed); - } - - //same as if not on wall and not pressing the buttons - if (!inputState.GetButtonValue(right) && !inputState.GetButtonValue(left)) - { - if (airSpeed != 0) - { - airSpeed += (-1) * Mathf.Sign(airSpeed) * airAcceleration; - if (Mathf.Abs(airSpeed) < airAcceleration) - airSpeed = 0; - } - } - body.velocity = new Vector2(airSpeed, body.velocity.y); - - //slow down y velocity - if(body.velocity.y < clingSpeed) - { - body.velocity = new Vector2(body.velocity.x, -clingSpeed); - } - - } + public float speed; + private float airSpeed; + public float airAcceleration; + public float friction; + public float wallClingTime; //time you will 'stick' to the wall after pressing the opposite direction + public float clingSpeed = 0.1f; + + public float realSpeed; + public bool wallSliding = false; + + private int rightInt = 0; + private int leftInt = 0; + + private float rightTime = 0; + private float leftTime = 0; + + // Use this for initialization + void Start() { + } + + // Update is called once per frame + void Update() { + Buttons left = inputButtons[0]; + Buttons right = inputButtons[1]; + + rightInt = 0; + leftInt = 0; + + + if (inputState.GetButtonValue(right)) + rightInt = 1; + else + rightInt = 0; + + if (inputState.GetButtonValue(left)) + leftInt = -1; + else + leftInt = 0; + + wallSliding = false; + + if (collisionState.onGround) //movement on ground + { + + realSpeed = body.velocity.x; + if (inputState.GetButtonValue(right) || inputState.GetButtonValue(left)) + { + + realSpeed = Mathf.Clamp(realSpeed + speed * (rightInt + leftInt), -speed, speed); + } + else + { + if (realSpeed != 0) + { + realSpeed += (-1) * Mathf.Sign(realSpeed) * friction; + if (Mathf.Abs(realSpeed) < friction) + realSpeed = 0; + } + } + body.velocity = new Vector2(realSpeed, body.velocity.y); + } else if (!collisionState.onWall || body.velocity.y > 0) //in air and not sliding + { + + wallSliding = false; + + airSpeed = body.velocity.x; + if (inputState.GetButtonValue(right) || inputState.GetButtonValue(left)) + { + if(Mathf.Abs(airSpeed) <= speed) + airSpeed = Mathf.Clamp(airSpeed + airAcceleration * (rightInt + leftInt), -speed, speed); + else + { + if (airSpeed != 0) + { + airSpeed += (-1) * Mathf.Sign(airSpeed) * airAcceleration; + if (Mathf.Abs(airSpeed) < airAcceleration) + airSpeed = 0; + } + } + } + /*else //air deceleration while pressing nothing, I don't like this - may be removed + { + if (airSpeed != 0) + { + airSpeed += (-1) * Mathf.Sign(airSpeed) * airAcceleration; + if (Mathf.Abs(airSpeed) < airAcceleration) + airSpeed = 0; + } + }*/ + body.velocity = new Vector2(airSpeed, body.velocity.y); + } else //handles wall sliding + { + wallSliding = true; + rightTime = inputState.GetButtonHoldTime(right); + leftTime = inputState.GetButtonHoldTime(left); + + airSpeed = body.velocity.x; + + //only sets a change if the button has been held for a set time + if (rightTime >= wallClingTime) + { + wallSliding = false; + airSpeed = Mathf.Clamp(airSpeed + airAcceleration * (rightInt + leftInt), -speed, speed); + } + if (leftTime >= wallClingTime) + { + wallSliding = false; + airSpeed = Mathf.Clamp(airSpeed + airAcceleration * (rightInt + leftInt), -speed, speed); + } + + //same as if not on wall and not pressing the buttons + if (!inputState.GetButtonValue(right) && !inputState.GetButtonValue(left)) + { + if (airSpeed != 0) + { + airSpeed += (-1) * Mathf.Sign(airSpeed) * airAcceleration; + if (Mathf.Abs(airSpeed) < airAcceleration) + airSpeed = 0; + } + } + body.velocity = new Vector2(airSpeed, body.velocity.y); + + //slow down y velocity + if(body.velocity.y < clingSpeed) + { + body.velocity = new Vector2(body.velocity.x, -clingSpeed); + } + + } //change localScale depending on direction if (inputState.GetButtonValue (right) && inputState.GetButtonValue (left)) @@ -144,5 +144,5 @@ public class Walk : AbstractBehavior { { inputState.direction = Directions.Left; } - } + } } -- GitLab