Essentially, and I hope this is adequate explanation…but I’d like to be able to use just two input keys, such as left and right, to control the Snake. Such that if it’s going upwards, and I hit right twice, it’ll end up going down.(One 90 degree turn, and then another?)
I’ve tried looking this up on my own but I haven’t found anything that isn’t 3D.
At the moment I have four input keys for movement.
// Use this for initialization
void Start () {
GetComponent<Rigidbody2D>().velocity = Vector2.up * speed;
}
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(upKey)
{
GetComponent<Rigidbody2D>().velocity = Vector2.up * speed;
speed += .5f;
}
else if (Input.GetKeyDown(downKey)
{
GetComponent<Rigidbody2D>().velocity = -Vector2.up * speed;
speed += .5f;
}
else if (Input.GetKeyDown(rightKey)
{
GetComponent<Rigidbody2D>().velocity = Vector2.right * speed;
speed += .5f;
}
else if (Input.GetKeyDown(leftKey)
{
GetComponent<Rigidbody2D>().velocity = -Vector2.right * speed;
speed += .5f;
}
}
I’ve tried playing around with having multiple if/elseIf for different scenarios, but I’m met with limited success and I feel like I’m overly complicating the whole thing, if I’m not already doing so above.
Thank you for any and all help. Whilst I understand I could keep it the way it is, I wanted to change the controls to learn more and ended up lost.