init
This commit is contained in:
commit
e0a842f222
796 changed files with 361371 additions and 0 deletions
139
Assets/Scripts/Player/PlayerMovement.cs
Normal file
139
Assets/Scripts/Player/PlayerMovement.cs
Normal file
|
|
@ -0,0 +1,139 @@
|
|||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
|
||||
public class PlayerMovement : MyTypes.MyPawn{
|
||||
|
||||
public bool player1;
|
||||
|
||||
[Space]
|
||||
[SerializeField] PlayerManager playerManager;
|
||||
|
||||
Vector2 velocity;
|
||||
bool moving;
|
||||
Vector2 positionToGo;
|
||||
|
||||
Vector2 directionFacing = Vector2.up;
|
||||
float rotationVelocity;
|
||||
|
||||
// Start is called before the first frame update
|
||||
void Awake(){
|
||||
positionToGo = new Vector2(transform.position.x, transform.position.z);
|
||||
}
|
||||
|
||||
// Update is called once per frame
|
||||
void Update(){
|
||||
|
||||
|
||||
if (!player1)
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.UpArrow))
|
||||
{
|
||||
positionToGo += Vector2.up;
|
||||
directionFacing = Vector2.up;
|
||||
GameManager.Instance.movePawn(this, MyTypes.MyDirection._UP);
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.DownArrow))
|
||||
{
|
||||
positionToGo += Vector2.down;
|
||||
directionFacing = Vector2.down;
|
||||
GameManager.Instance.movePawn(this, MyTypes.MyDirection._DOWN);
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.LeftArrow))
|
||||
{
|
||||
positionToGo += Vector2.left;
|
||||
directionFacing = Vector2.left;
|
||||
GameManager.Instance.movePawn(this, MyTypes.MyDirection._LEFT);
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.RightArrow))
|
||||
{
|
||||
positionToGo += Vector2.right;
|
||||
directionFacing = Vector2.right;
|
||||
GameManager.Instance.movePawn(this, MyTypes.MyDirection._RIGHT);
|
||||
}
|
||||
|
||||
if (Input.GetKeyDown(KeyCode.UpArrow) || Input.GetKeyDown(KeyCode.DownArrow) || Input.GetKeyDown(KeyCode.LeftArrow) || Input.GetKeyDown(KeyCode.RightArrow))
|
||||
AudioManager.instance.PlayOneShot("Pez");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (Input.GetKeyDown(KeyCode.W))
|
||||
{
|
||||
positionToGo += Vector2.up;
|
||||
GameManager.Instance.movePawn(this, MyTypes.MyDirection._UP);
|
||||
directionFacing = Vector2.up;
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.S))
|
||||
{
|
||||
positionToGo += Vector2.down;
|
||||
GameManager.Instance.movePawn(this, MyTypes.MyDirection._DOWN);
|
||||
directionFacing = Vector2.down;
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.A))
|
||||
{
|
||||
positionToGo += Vector2.left;
|
||||
GameManager.Instance.movePawn(this, MyTypes.MyDirection._LEFT);
|
||||
directionFacing = Vector2.left;
|
||||
}
|
||||
else if (Input.GetKeyDown(KeyCode.D))
|
||||
{
|
||||
positionToGo += Vector2.right;
|
||||
GameManager.Instance.movePawn(this, MyTypes.MyDirection._RIGHT);
|
||||
directionFacing = Vector2.right;
|
||||
}
|
||||
|
||||
if(Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.D) || Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.W))
|
||||
AudioManager.instance.PlayOneShot("Pez");
|
||||
}
|
||||
|
||||
//Vector2 currentPosition = Vector2.SmoothDamp(new Vector2(transform.position.x, transform.position.z), positionToGo, ref velocity, .1f, Mathf.Infinity, Time.unscaledDeltaTime);
|
||||
//transform.position = new Vector3(currentPosition.x, transform.position.y, currentPosition.y);
|
||||
|
||||
float targetAngle = Mathf.Atan2(directionFacing.x, directionFacing.y) * Mathf.Rad2Deg;
|
||||
float angle = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetAngle, ref rotationVelocity, .1f, Mathf.Infinity, Time.unscaledDeltaTime);
|
||||
transform.rotation = Quaternion.Euler(0f, angle, 0f);
|
||||
}
|
||||
|
||||
private void oldMovement()
|
||||
{
|
||||
if (playerManager.playerMoving == null || playerManager.playerMoving == this)
|
||||
{
|
||||
if (!moving)
|
||||
{
|
||||
Vector2 movement = Vector2.zero;
|
||||
if (Input.GetButtonDown("Up"))
|
||||
movement = Vector2.up;
|
||||
else if (Input.GetButtonDown("Down"))
|
||||
movement = Vector2.down;
|
||||
else if (Input.GetButtonDown("Left"))
|
||||
movement = Vector2.left;
|
||||
else if (Input.GetButtonDown("Right"))
|
||||
movement = Vector2.right;
|
||||
|
||||
if (movement.sqrMagnitude > .1f)
|
||||
{
|
||||
moving = true;
|
||||
directionFacing = movement;
|
||||
playerManager.Move(this);
|
||||
}
|
||||
positionToGo = new Vector2(positionToGo.x + movement.x, positionToGo.y + movement.y);
|
||||
}
|
||||
else
|
||||
{
|
||||
Vector2 currentPosition = Vector2.SmoothDamp(new Vector2(transform.position.x, transform.position.z), positionToGo, ref velocity, .1f, Mathf.Infinity, Time.unscaledDeltaTime);
|
||||
transform.position = new Vector3(currentPosition.x, transform.position.y, currentPosition.y);
|
||||
|
||||
if (Vector2.Distance(currentPosition, positionToGo) < .05f)
|
||||
{
|
||||
transform.position = new Vector3(positionToGo.x, transform.position.y, positionToGo.y);
|
||||
moving = false;
|
||||
playerManager.Stop();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
float targetAngle = Mathf.Atan2(directionFacing.x, directionFacing.y) * Mathf.Rad2Deg;
|
||||
float angle = Mathf.SmoothDampAngle(transform.eulerAngles.y, targetAngle, ref rotationVelocity, .1f, Mathf.Infinity, Time.unscaledDeltaTime);
|
||||
transform.rotation = Quaternion.Euler(0f, angle, 0f);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue