using UnityEngine;

public class Player2 : MonoBehaviour
{
    enum Direction {
        Left,
        Up,
        Right,
	Down
    }

    public Vector2Int direction = Vector2Int.right;

    private Vector2Int input;

    // Start is called before the first frame update
    void Start() {
    	direction = Vector2Int.right;
    }

    // Update is called once per frame
    void Update() {
	if (direction.x != 0f) {
            if (Input.GetKeyDown(KeyCode.W) || Input.GetKeyDown(KeyCode.UpArrow)) {
                input = Vector2Int.up;
            } else if (Input.GetKeyDown(KeyCode.S) || Input.GetKeyDown(KeyCode.DownArrow)) {
                input = Vector2Int.down;
            }
        } else if (direction.y != 0f) {
            if (Input.GetKeyDown(KeyCode.D) || Input.GetKeyDown(KeyCode.RightArrow)) {
                input = Vector2Int.right;
            } else if (Input.GetKeyDown(KeyCode.A) || Input.GetKeyDown(KeyCode.LeftArrow)) {
                input = Vector2Int.left;
            }
        }
    }

    void FixedUpdate() {
        if (input != Vector2Int.zero) {
            direction = input;
        }

        int x = Mathf.RoundToInt(transform.position.x) + direction.x;
        int y = Mathf.RoundToInt(transform.position.y) + direction.y;
	transform.position = new Vector2(x, y);
    }
}
